读书人

初学者硕枫设计模式系列之12 代理模式

发布时间: 2012-08-27 21:21:57 作者: rapoo

菜鸟硕枫设计模式系列之12 代理模式一
代理模式貌似是java中用途最广的设计模式之一,也是最重要的设计模式之一。使用代理模式能够封装设计细节,甚至能够改变被代理对象的行为,也可以在被代理对象开始行为之前做一些前期的处理【权限认证,开启事务等等就可以在这个地方做】。我们先看看前面两种代理方式:兄弟代理和父子代理。代理模式也是一种结构型模式。

代理模式类图:




具体demo:
兄弟代理是指被代理对象实现了某一接口,那么可以用代理去实现这一接口,从而能够代替被代理对象完成接口行为。
Person接口:

package proxyPattern;public class Proxy2Test {public static void main(String[] args){Woman woman = new Woman("meimei");woman.Shopping();Proxy2 proxy2 = new Proxy2("proxy2");proxy2.SetWoman(woman);proxy2.Shopping();}}


说明:兄弟代理和父子代理的本质都是复写原有的行为方法,只是由于原有类实现或者没有实现接口,所以在复写策略上有不同而已。父子代理是典型的里氏代换原则的示例demo.这两种方式都是静态代理,下一讲将看到java的重要特点----反射机制的动态代理。



读书人网 >软件开发

热点推荐