首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

【设计方式】原型模式

2013-09-25 
【设计模式】原型模式原型模式,如其名称,核心就是要实现一个原型类,该类支持clone操作,从而客户可以从原型克

【设计模式】原型模式

原型模式,如其名称,核心就是要实现一个原型类,该类支持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

prototype比较麻烦的一点就是clone操作的定义有时候不是那么容易的。涉及到深浅拷贝等问题。具体网上有很多讨论,这里就不抄袭了。对于简单类这个其实也不是什么困难事。

热点排行