定义:
代理模式意味着代替,代表。是最简单的模式之一,也是结构型设计模式中典型的示例,类比现实生活中的前台,可以代理公司很多事物。比如。你去某公司找某个技术人员谈事情,首先会经由前台接待你,前台此处就是这个技术人员的代理。
应用场景:
可以应用在希望在被代理对象前后做一些其他处理,或者控制对被代理对象的访问权限等。可以结合AOP理解应用场景。
UML类图:
1
代码实现:
抽象角色:(被代理角色的抽象类或者接口)
2
真是角色:(真是的被代理类)
3
代理角色:(真实的代理类)
4
测试类:
5
结果:
6
分析:
以上代理为
静态代理:
代理类由程序员编写,并在程序运行前就已经编译好的。如上的ReceptionProxy---前台小妹
动态代理:
代理类由程序动态生成,而实现的关键就是反射技术。
最终生成的代理类的class类定义类似:
class$A extend Proxy implements SubjectInterface (基于jdk 动态代理)
代理模式的优势:
1:在不修改被代理对象的情况下,对被代理对象的功能做扩展。
2:提供了对目标对象的另外的访问方式----通过代理的方式










网友评论