Aha!设计模式(70)-代理模式(4)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/craftsman1970/article/details/89458550

结构

参与者

括号中列举的是前一篇文章中保护代理实例中的对应类。
• Proxy (AccessorProxy )
—管理一个引用使得代理可以访问实体。结果类图中的Proxy管理的是RealSubject类型的对象,如果可能的话Proxy可以管理Subject类型的对象,这时Proxy可以具备更好的通用性。
—提供一个与Subject的接口相同的接口,这样代理就可以用来替代实体。也就是说从客户看起来没有发生任何变化。
— 根据需求,提供额外的操作以实现客户的需求。
• Subject ( DbAccessor )
—定义RealSubject和Proxy的共用接口,这样就在任何使用RealSubjec t的地方都可以使用Proxy。站在用户立场,无论是RealSubject还是Proxy,都是一样的。
• RealSubject (RealAccessor)
—Proxy所代表的实体。

在实际的开发中,有可能最先存在的是具体实现功能的Subject。当发生另外的需求(节约内存,保护访问等)时,可以将Subjec的功能转移到新类RealSubject中,而Subject本身变成一个抽象类。接下来按照Subject的接口定义Proxy并交给用户使用。这可以看作是重构的一个实例。

扫描二维码关注公众号,回复: 5978984 查看本文章

 协作

• 代理根据其职责,在适当的时机和方式向代理对象转发请求。

觉得本文有帮助?请分享给更多人。

阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】

猜你喜欢

转载自blog.csdn.net/craftsman1970/article/details/89458550