Java设计模式概述之结构型模式(代理模式)
2017-02-06 13:38
423 查看
二、代理模式
我们在实践过程中,常常需要对一个类的功能进行完善和增强。于是,我们经常会用继承类和实现接口的方式来增强一个类,但这样或多或少会造成类与类之间的耦合:继承类之后不能再继承其他类;实现接口的话必须实现接口中的所有方法,且若接口的方法发生改变,实现接口类也必须做出改变,这样不利于最大限度扩展。代理模式(Proxy)使用代理类来增强原始类。代理类需要与原始类建立逻辑关系的代码,而原始类不需要任何改动。这样有利于原始类的扩展与维护。代理模式增强原始类得到方式是非侵入性的。
Spring AOP(Aspect Oriented Programming)就很好的体现了代理模式。
下面我们来分析一段代理模式的实例代码:
/** * @author Hanlin Wang */ public class ProxyMode { public static void main(String[] args) { Proxy proxy = new Proxy(); proxy.run(); } } //定义接口 interface Resource{ void run(); } //定义类实现Resource接口 class M implements Resource{ public void run() { System.out.println("M's running"); } } //定义代理类 class Proxy implements Resource{ private M m; public Proxy(){ m = new M(); } @Override public void run() { // TODO Auto-generated method stub before(); m.run(); after(); } private void before(){ System.out.println("before"); } private void after(){ System.out.println("after"); } }
代理类中定义类before和after方法,用来增强被代理类(原始类)的run方法。Proxy类封装了一个M类引用m,并在Proxy类实例化时同时实例化M类。
相关文章推荐
- 【结构型模式】代理模式(Proxy)之23种java设计模式
- 设计模式(3)-结构型-代理模式(proxy)以及java动态代理的两种方式
- Java设计模式概述之结构型模式(桥接模式)
- Java设计模式概述之结构型模式(外观模式)
- java设计模式之结构型模式-代理模式
- Java设计模式-结构型-代理模式
- Java设计模式_(结构型)_代理模式
- Java设计模式之结构型模式-代理模式(Proxy)
- Java结构型设计模式——适配器模式、代理模式
- java设计模式--结构型模式--代理模式
- Java经典23种设计模式之结构型模式(三)------附代理模式、适配器模式、外观模式区别
- Java设计模式概述之结构型模式(装饰器模式)
- Java设计模式_结构型_代理模式_服装公司与代理商
- 设计模式(3)-结构型-代理模式(proxy)以及java动态代理的两种方式
- Java设计模式(8)结构型:代理模式
- 设计模式(3)-结构型-代理模式(proxy)以及java动态代理的两种方式
- Java经典设计模式-结构型模式-代理模式(Proxy)
- Java设计模式-结构型-代理模式
- java设计模式--代理模式(结构型)
- Java设计模式概述之结构型模式(享元模式)