以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Java/Eclipse 』  (http://bbs.xml.org.cn/list.asp?boardid=41)
----  《Java与模式》选读“原始模型(Prototype)模式”[转帖]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=41&rootid=&id=31731)


--  作者:hongjunli
--  发布时间:5/3/2006 9:42:00 PM

--  《Java与模式》选读“原始模型(Prototype)模式”[转帖]

第四、产品类不需要非得有任何事先确定的等级结构,因为原始模型模式适用于任何的
等级结构。

原始模型模式的最主要缺点,是每一个类都必须配备一个克隆方法。配备克隆方法需要
对类的功能进行通盘考虑,这对于全新的类来说不是很难;而对于已经有的类不一定很
容易。特别是当一个类引用到不支持串行化的间接对象,或者引用含有循环结构的时候

==========================
回答某网友问:为什么不使用new关键词,而使用原始模型模式?

如果您有一个对象,有着复杂的状态。您希望得到另一个拷贝,但是同时具有一模一样
的状态,如果选择从头创建一个新的对象,您将不得不重新一个一个地设置这些状态。
有的时候着很麻烦,有的时候这不可能做到。这种时候,使用原始模型模式,调用一个
克隆方法,就变成非常好的办法。

仍然使用孙大圣为例,如果我们从头创建一个一个的大圣对象,那么我们将不得不从石
头猴子开始点化,配备上一模一样的虎皮裙,再找龙王要来一模一样的金箍棒。。。这
种工作量难以想象。

孙大圣的身外身法术出神入化地解决了这个问题:大圣可以直接将本尊克隆出来,所有
的化身都自动具有相同的虎皮裙,一模一样的金箍棒,一模一样的精神抖擞。这就是原
始模型模式的威力。

希望您能喜欢这本书。

阎宏 博士
《Java与模式》的作者
JavaPatterns@yahoo.com
www.WebEndsHere.com


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.005ms