Mediator设计模式及其应用

阅读更多


作这个习作的时候并不知道有设计模式这回事情。之后了解了,才顿悟。
所谓的设计模式我认为并不是单独提出来的一门技术。
而是对编写设计软件经验的一些总结,综合,提炼。

这个习作的意图是:
设计一个颜色控件(MyColorChooser),并应用于窗体(Test).达到调控窗体背景色的目的

完整的UML图

Mediator设计模式及其应用_第1张图片


运行效果图

Mediator设计模式及其应用_第2张图片

Mediator设计模式及其应用_第3张图片

Mediator设计模式及其应用_第4张图片

现在和正统的Media模式比较下
Mediator设计模式及其应用_第5张图片
Mediator(就是我的Mylistener接口)被ConcreteMediator实现(就是我的Test)
ConcreteMediator和Colleague是包含关系(就是我的MyColorChooser)
Colleague和Mediator是包含关系

Mediator的官方定义:
用一个中介对象来封装一系列关于对象交互行为.

意图:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互
 
解释
   定义里指的中介对象是mediator(interface)
   定义里指的一系列对象是指colleague和ConcreteMediator
  
   定义里说的不需要显示的相互引用,使其耦合松散。可以这样理解:
   定义里说的交互就是好比Class A要操作Class B ,Class B也要操作Class A。可以简单的写成
    class a{
       new b().function();
    }
    class b{
       new a().function();
    }
    但是这样一来问题就来了如何复用。如果出现一个Class C,难道要修改程序吗。
    这个就是所谓的耦合问题(我猜得  哈哈)
    如果采用mediator模式就能较好的解决问题。
    比如习作中的控件(MyColorChooser)复用时就不需要任何改动
   

你可能感兴趣的:(设计模式,UML,C,C++,C#)