代理模式
什么是代理模式:
1.即Proxy Pattern,23种常用的面向对象软件的设计模式之一。
2.代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
委托类和代理类的功能
1.委托类实现真正的业务功能
2.代理类
负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后对返回结果的处理等
静态代理 & 动态代理
静态代理 :
1.静态代理业务类只需要关注业务逻辑本身,保证了业务类的重用性。代理对象的一个接口只服务于一种类型的对象,如果要代理的方法很多,需要为每一种方法都进行代理,静态代理在程序规模稍大时就无法胜任。如果接口增加一个方法,除了所有实现类需要实现这个方法外,所有代理类也需要实现此方法。增加了代码维护的复杂度。
动态代理:
1.是在程序运行时通过反射机制动态创建的,随用随加载。
优势:
动态代理与静态代理相比较,最大的好处是接口中声明的所有方法都被转移到调用处理器一个集中的方法中处理(InvocationHandler invoke)。这样,在接口方法数量比较多的时候,可以进行灵活处理,而不需要像静态代理那样每一个方法进行中转。而且动态代理的应用使类职责更加单一,复用性更强。