意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型对象创建新的对象。
原型模式的结构比较简单,在使用C++实现该模式时重点要注意deep copy和shallow copy的问题。
prototype模式在实际使用的过程中,可以通过增加一个原型管理器来实现动态添加原型的机制。
prototype和AbstractFactory的区别主要在于AbstractFactory模式更侧重于一系列或者一些相关对象的创建,
而prototype模式则侧重于通过拷贝的方式创建多个相似的对象。prototype模式可以避免AbstractFactory模式
那种工厂和产品平行的结构。Builder模式则是更侧重于复杂对象的创建过程,对这个对象的创建过程可能会有多种
不同的算法。
创建型模式除了单例模式(单体模式),已经都过了一遍。单例过于简单,所以就不单独写日志了。
这几种创建模式的意图都很明显,就是为了将对象的创建过程从client的代码中独立出来,降低了client代码的复杂度,
代码结构更加清晰,也有利于拓展。在对这几种创建型模式做选择的时候,要根据自己的需求和这几种模式的特点来找到
最佳的模式。
AbstractFacotry:侧重于一些列或一些相关对象的创建。一换全换。工厂和产品的结构平行。
Builder模式:侧重复杂对象的创建,分出了Director和Builder;Director负责创建算法的选择,即创建流程的选择,
而具体的Builder则负责创建具有特点的产品部件,并最终组成产品。
Prototype模式: 要创建的对象基本一致,只有细微差别,或者只分为几类,通过不同的原型进行自我复制完成对象的创建。
2014年3月13日 22:06:19 Jarek.Tan