一。原型模式
其通用类图如下:
当一个类的构造和初始化需要消耗非常多资源的时候可以考虑使用原型模式,原型模式通过直接复制一个对象的二进制流来生成另一个对象(C++中就是复制构造函数的调用),使用原型模式要注意浅拷贝和深拷贝的问题。
二。中介者模式
其通用类图如下:
在多个模块中,当每个模块都需要与其它若干个模块交流时,为使模块间耦合松散可以使用中介者模式;中介者模式通过设计一个中介类来封装模块间的交互逻辑,使类间原本一对多的依赖变成一对一的依赖;使用的时候要注意同事类增加会造成中介者膨胀问题。
三。命令模式
其通用类图如下:
只要是命令的地方就可以使用命令模式;命令模式将场景类对其它对象(上图中的Receiver)的调用按业务逻辑封装为命令类,并设置一个调用类来接收并执行命令类;命令模式可以使调用者与接收者解耦,不必了解到底是哪个接收者执行。