【设计模式】原型模式
原型模式,如其名称,核心就是要实现一个原型类,该类支持clone操作,从而客户可以从原型克隆出具体的类。
其效果主要有如下:
可以动态增加和删除产品。这个就是通过clone代替new等操作,也避免了客户与具体类打交道。
通过改变对象的值,指定新的对象。clone出一个新对象后可以修改其参数改变对象,如果参数较多,可以提供类似initialize方法。
减少creator类,减少子类数目。客户看起来直接从一个原型克隆出一个新的对象,而不是跟工厂方法打交道,因而少了一个类层次。
动态配置应用,这个真是没想明白。也没个例子,我想大致意思就是将原型编译成动态库等,初始化阶段构造原型对象,运行时从原型克隆出新的类吧。
写了个简单demo,供参考:
1. prototype:R:G:B=>0:0:02. after cloned:R:G:B=>0:0:03. after set property:R:G:B=>0:0:2554. line:type:0,0;99,99;DYNAMIC produce TESTI am ColourI am BlueI am RedI am Line