`
jaesonchen
  • 浏览: 300305 次
  • 来自: ...
社区版块
存档分类
最新评论

java普通代理模式

 
阅读更多
public interface Business {
	public void service();
	public void execute();
}
public class BusinessImpl implements Business {
	private String id = "default";
	
	public BusinessImpl() {}
	
	public BusinessImpl(String id) {
		this.id = id;
	}
	
	@Override
	public void service() {
		
		System.out.println("service.id = " + this.id);
	}

	@Override
	public void execute() {
		
		System.out.println("execute.id = " + this.id);
	}
}
public class BusinessProxy implements Business {

	private Business business;
	
	public BusinessProxy(Business business) {
		this.business = business;
	}

	private void doBefore() {
		System.out.println("before service");
	}
	
	private void doAfter() {
		System.out.println("after service");
	}
	
	@Override
	public void service() {
		
		this.doBefore();
		this.business.service();
		this.doAfter();
	}
	
	@Override
	public void execute() {
		
		this.doBefore();
		this.business.service();
		this.doAfter();
	}
	
	public static void main(String[] args) {
		
		BusinessProxy proxy = new BusinessProxy(new BusinessImpl());
		proxy.service();	
	}
}

 输出为:

before service
service.id = default
after service

 

 

 

 

分享到:
评论

相关推荐

    java设计模式

    12.4.1 普通代理 12.4.2 强制代理 12.4.3 代理是有个性的 12.4.4 虚拟代理 12.4.5 动态代理 12.5 最佳实践 第13章 原型模式 13.1 个性化电子账单 13.2 原型模式的定义 13.3 原型模式的应用 13.3.1 原型模式的优点 ...

    java设计模式【之】JDK动态代理【源码】【场景:帮爸爸买菜】.rar

    * 代理模式 * 在开发者的角度来看,创建一个代理对象,提供给用户使用,避免用户直接访问真正的对象 * 在用户角度来看,就是普通的类方法调用 * * 作用 * 1.保护被代理对象 * 2.增强被代理对象 * 3.完全...

    java 23种设计模式及具体例子

    * 代理模式:代理模式是一种结构型模式,它提供了一种访问对象的方式,而不需要访问对象本身。 * 外观模式:外观模式是一种结构型模式,它提供了一种访问对象的方式,而不需要访问对象本身。 * 桥接模式:桥接模式是...

    java设计模式【之】静态代理【源码】【场景:帮爸爸买菜】.rar

    * 代理模式 * 在开发者的角度来看,创建一个代理对象,提供给用户使用,避免用户直接访问真正的对象 * 在用户角度来看,就是普通的类方法调用 * * 作用 * 1.保护被代理对象 * 2.增强被代理对象 * 3.完全...

    java 常用设计模式chm

    Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,Proxy是代理的意思,我们也许有代理服务器等概念,代理概念可以解释为:在出发点到目的地之间有一道中间层,意为代理. 设计模式中...

    java设计模式【之】Cglib动态代理【源码】【场景:帮爸爸买菜】

    * 代理模式 * 在开发者的角度来看,创建一个代理对象,提供给用户使用,避免用户直接访问真正的对象 * 在用户角度来看,就是普通的类方法调用 * * 作用 * 1.保护被代理对象 * 2.增强被代理对象 * 3.完全...

    Java 23种设计模式通解

    * 结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式 * 行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

    代理模式笔记.xls

    代理简介,静态代理,动态代理,23种设计模式之一,拦截器在在流行的开源框架中很常见,依赖的技术就是Java的动态代理。  理解拦截器的核心原理对理解这些开源框架的体系结构至关重要。  下面以一个简单的模型的...

    java的5种模式.docx

    代理模式(Proxy Pattern) 定义:Provide a surrogate or placeholder for another object to control access to it. (为其他对象提供一种代理以控制对这个对象的访问。) ● Subject 抽象主题角色 抽象主题类可以是...

    Java 基础核心总结 +经典算法大全.rar

    代理模式 静态代理与动态代理常见的动态代理实现JDK Proxy CGLIB JDK Proxy 和 CGLIB 的对比动态代理的实际应用 Spring AOP 变量 变量汇总实例变量 实例变量的特点全局变量 静态变量 静态变量的特点类变量 局部变量

    java-design-patterns:java 学习模式

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

    Java理论与实践:用动态代理进行修饰

    虽然这些模式不使用动态代理,只用普通的类就能够实现,但是在许多情况下,动态代理方式更方便、更紧凑,可以清除许多手写或生成的类。动态代理是强大而未充分利用的工具,可以用于实现许多设计模式。这些模式基于...

    Java常见面试题208道.docx

    面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...

    全开源 java语言支付系统 Jeepay全三方支付系统

    全开源 java语言支付系统 Jeepay全三方支付系统 支持多渠道服务商和普通商户 没有教程,有兴趣的可以下载研究一下 Jeepay是一套适合互联网企业使用的开源支付系统,支持多渠道服务商和普通商户模式。 已对接微信...

    Java_JDBC由浅入深

    14.3 数据库连接池之代理模式 78 14.3.1 静态代理 78 14.3.2 动态代理 84 14.4 DBCP数据库连接池的使用 87 第十五节 jdbc轻量级封装 88 15.1 将结果集封装为Map 88 15.1.1 ResultSetMetaData演示 88 15.1.2解决多行...

    agent7:Java代理以重新加载.class文件; 它使用Java 7+中可用的文件监视API

    Agent7可以与普通Java一起运行。 但是,它旨在与一起使用。 动态代码演化虚拟机(DCE VM)是对Java HotSpot:trade_mark:VM的修改,它允许在运行时无限制地重新定义已加载的类。 HotSpot:trade_mark:VM的当前热交换...

    史上最全java面试,103项重点知识,带目录

    12. 普通类和抽象类有哪些区别? 6 13. 抽象类能使用 final 修饰吗? 6 14. 接口和抽象类有什么区别? 7 15. java 中 IO 流分为几种? 7 16. BIO、NIO、AIO 有什么区别? 7 17. Files的常用方法都有哪些? 8 二、...

    java面试800题

    facade门面模式、proxy代理模式、adapter适配器(变压器)模式、composite合成模式、decorator装饰模式、bridge桥梁模式、flyweight享元模式 行为模式 template模板方法模式、memento备忘录模式、observer观察者模式...

Global site tag (gtag.js) - Google Analytics