`

设计模式学习篇-proxy代码模式

 
阅读更多

代理模式:给某个对象提供一个代理对象,并由代理对象控制对原对象的引用。

本质:就是控制对象。

原理:

    代理主题和真实主题实现相同的接口,使得任何使用真实主题的地方都可以使用代理主题,代理主题内部含有对真实主题的引用,在将调用传递给真实主题之前或之后执行一些额外的操作,达到控制真实主题的目的。

特征:

    抽象主题角色(Subject):声明了真实主题和代理主题的共同接口。这样使得任何使用真实主题的地方都可以使用代理主题。

    代理主题角色(proxy):代理主题内部含有对真实主题的引用,通常在将调用传递给真实主题之前或之后执行一些额外的操作,控制对真实主题的引用。

    真实主题角色(RealSubject):代理角色所代表的真实角色。
5.说明:

    代理主题角色可能不知道真实主题角色的存在,而仅仅持有一个被代理主题角色的接口,这时代理主题不能创建被代理主题对象,真实主题角色由系统的其它角色创建并传入。增加了灵活性。

 

实现上分成:静态代理以及动态代理(jdk 自带的动态代理以及cglib方式)

=========================================================

装饰器模式:能动态的新增或组合对象的行为。
代理模式:为其他对象提供一种代理以控制对这个对象的访问.
装饰模式是“新增行为”,而代理模式是“控制访问”。

 

类图如下:

 

  • 大小: 2.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics