中介者模式

来源:互联网 发布:星际争霸2网络问题 编辑:程序博客网 时间:2024/05/15 06:33

中介者模式(Mediator Pattern):定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互。

使用终结者模式的场合:
1.一组定义良好的对象,现在要进行复杂的通信。
2.定制一个分布在多个类中的行为,而又不想生成太多的子类。

使用中介者模式的优点:
1.降低了系统对象之间的耦合性,使得对象易于独立的被复用。
2.提高系统的灵活性,使得系统易于扩展和维护。

使用中介者模式的缺点:
中介者模式的缺点是显而易见的,因为这个“中介“承担了较多的责任,所以一旦这个中介对象出现了问题,那么整个系统就会受到重大的影响。

正是由于中介者模式的优点,再一些场合使用中介者模式可以使得整个系统的架构设计变得很简单,就以自己做过的一个项目为例:
这里写图片描述
上图是项目中提取出来的中介者模式类图,这是基于C#开发的控制软件,其中涉及到了许多的窗口,如果要对每个窗口一一控制,那么代码写起来就会很复杂,使用了中介者模式之后,任一窗口需要控制其他窗口时只需要调用该窗口类中的mediator对象中的ExecuteCommand()命令即可完成对其他窗口的控制。

在具体代码实现的过程中我不是专门抽象出一个IMediator接口类,而是直接将WindonsManager定义为一个静态“public static WindowsManager WindowsManager“,需要控制时在通过调用WindonsManager中的静态成员函数来完成对应的功能。
具体调用如下:
这里写图片描述
只要简单的两行代码就可以控制TimeLapseWnd是否显示。

0 0