Aha!设计模式(67)-代理模式(1)

网友投稿 660 2022-10-13

Aha!设计模式(67)-代理模式(1)

Aha!设计模式(67)-代理模式(1)

意图

为对象提供一种代替机制以实现更透明或者更小代价的访问。

动机

例如我们有一个股票交易信息表示模块,根据事先设定好的颜色,曲线的类型等信息,接受来自通讯模块的数据并进行表示。但是有一个比较特殊的需求是需要表示的屏幕的物理位置和数量都要可以定制。最简单的情况是在接收数据的电脑上直接表示,也可能要交易大厅的大屏幕上表示,或者两者都需要。

解决这个问题的一个可行的办法就是使用代理对象Proxy来替代真正的显示模块。从通讯模块的立场来看,Proxy就是一般的显示模块,但是其内部会处理不同的数量,不同类型的屏幕。以下是这个方案的类图。

首先,Display定义显示装置的接口,使用这些接口可以开始和停止显示,可以设定颜色和发送数据。然后LocalDispaly和LedDisplay实现了这些接口,分别支持电脑屏幕显示和LED大屏幕显示。接下来的RemoteDisplay虽然也实现了同样的接口,但是并不会直接提供真正的显示,而是负责将命令发送到远方的显示装置。最后是MultiDisplayProxy,它也不提供实际的显示功能,但是可以将显示接口的访问转发到事先登录的其他显示对象。

客户根据实际的需求,使用这四个类的组合,就可以实现多屏幕,多类型,多地点的显示功能。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Raddish- Node.js 框架
下一篇:C++11新特性(1)-long long
相关文章

 发表评论

暂时没有评论,来抢沙发吧~