作这个习作的时候并不知道有设计模式这回事情。之后了解了,才顿悟。 所谓的设计模式我认为并不是单独提出来的一门技术。 而是对编写设计软件经验的一些总结,综合,提炼。 这个习作的意图是: 设计一个颜色控件(MyColorChooser),并应用于窗体(Test).达到调控窗体背景色的目的 完整的UML图 运行效果图 现在和正统的Media模式比较下 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)复用时就不需要任何改动