原型&中介者模式

Posted 哎哟~不错哦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原型&中介者模式相关的知识,希望对你有一定的参考价值。

 

写设计模式这一系列随笔是为了自己日后参考、复习所用,具有很大的针对性。作者学习设计模式涉及的书籍有Design Patterns、Head First Design Patterns、研磨设计模式,大家如果想深入、或者不懂之处可以从这三本书上下手。

 

 

原型模式

 

定义


原型模式是说通过复制对象来创建新的实例。 

 

类图


 

 

关于克隆


浅克隆:只克隆基本数据类型;

深克隆:除了基本类型,还需克隆引用类型。 

 

作用


运行时动态改变实现类型;

可以不修改原型对象来克隆原型副本;

简化了新实例编码的复杂性;

扩展了新实例的未知类型。

 

 

中介者模式

 

定义


 用一个中介者对象封装一系列对象之间的交互。

 

类图


 

关于具体使用


具体开发中通常会简化中介者结构:

去掉Colleague接口:除了约束Colleague子类类型,继承它一般没有什么实际意义;

通常不定义Mediator接口,而是把ConcreteMediator实现成单例:定义接口是为了扩展更多的具体中介者类型,但实际开发中中介者只有一个;

ConcreteMediator与ConcreteColleague不再相互引用,通过在具体调用中传递或创建实例来弱化这种强引用。

 

作用


封装隔离了具体的交互类;

解耦了交互类之间的关系;

中介者集中控制交互利于管理。

 

以上是关于原型&中介者模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式解密(23) - 总结篇

浅谈设计模式:装饰器模式|中介模式|原型模式

命令模式&中介者模式

命令模式&中介者模式

Day319.中介者模式&备忘录模式 -Java设计模式

21种设计模式