12、代理模式(Proxy)
使用场景:
优点:
a) 代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;
b) 代理对象可以扩展目标对象的功能;
c) 代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性
缺点:
a) 代理模式会造成系统设计中类的数量增加
b) 在客户端和目标对象之间增加一个代理对象,会造成请求处理速度变慢;
c) 增加了系统的复杂度
模式结构:
a) 抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。
b) 真实主题(Real Subject)类:实现了抽象主题中的具体业务,是代理对象所代表的真实对象,是最终要引用的对象。
c) 代理(Proxy)类:提供了与真实主题相同的接口,其内部含有对真实主题的引用,它可以访问、控制或扩展真实主题的功能。