大家来谈谈Prototype模式如何?

fangss 2002-12-27 04:44:33
欢迎多多发言
...全文
75 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeffyan77 2002-12-30
  • 打赏
  • 举报
回复
prototype建造到了Java对象模型里面,这并不意味着你就不需要干什么了。你常常需要override这个clone()。

java.lang.Object提供的clone方法太简单了,往往不符合要求。我建议你看一看java.lang.Object这个方法的源代码。

java.util.Vector提供了自己的clone()。思考一下问什么,搞懂了这个问题,你就真正弄懂了prototype模式。
fish1980 2002-12-30
  • 打赏
  • 举报
回复
虽然我对阎博士前断时间到处做广告的做法有点意见,却不得不承认其问题的分析很有特色,而且让听众容易把一些死板的概念转化为自己的理解,受教了!
myzoucp18 2002-12-30
  • 打赏
  • 举报
回复
jeffyan77
讲得真好!说出其用法来了(看书只知道有这功能)
beyondii 2002-12-30
  • 打赏
  • 举报
回复
sign
fangss 2002-12-30
  • 打赏
  • 举报
回复
既然已经建造到java里了,那这种模式企不是没有用武之地了?
fangss 2002-12-30
  • 打赏
  • 举报
回复
哦,这样呀!
jeffyan77 2002-12-30
  • 打赏
  • 举报
回复
呵呵,我可没有说那个。要创建C的对象c的一个克隆,就只需要

c1 = c.clone();

就可以了。我说的与macoff说的是一样。这本身就是prototype模式,macoff说的意思是prototype模式已经建造到了Java语言的对象模型里面。
fangss 2002-12-29
  • 打赏
  • 举报
回复
jeffyan77:
的意思好象是这样一来的:C继承B,B继承A的话,
如果不用prototype的话,要得到C,就要先创建A,在B,在C.

如macoff(天堂)所说,
我也可以直接c.clone()的呀,那还要prototype做甚?
fangss 2002-12-28
  • 打赏
  • 举报
回复
有什么好处呢?
才钦 2002-12-28
  • 打赏
  • 举报
回复
在Java中Prototype模式变成clone()方法的使用,由于Java的纯洁的面向对象特性,使得在Java中使用设计模式变得很自然,两者已经几乎是浑然一体了。
fangss 2002-12-28
  • 打赏
  • 举报
回复
嗯,精辟精辟!
jeffyan77 2002-12-28
  • 打赏
  • 举报
回复
呵呵,如果不使用身外身的手段的话,你就得从石头开始点化百十个老孙,打死百十个老虎,大闹百十遍龙宫,给这些老孙配上虎皮群,金箍棒。

你觉得那个可能性大些,那个容易些?

有很多对象,它们所含有的状态是用户输入的,或者其他来源的,是不可以复制的。有另外一些对象,它们的状态是可以复制的,但是并不容易复制。

这种情况下,如果你需要他们的一个拷贝的话,最为简单的方法就是学习孙大圣的身外身法术。

呵呵,玩笑玩笑。
jeffyan77 2002-12-27
  • 打赏
  • 举报
回复
孙悟空在与黄风怪的战斗中,“使一个身外身的手段:把毫毛揪下一把,用口嚼得粉碎,望上一喷,叫声‘变!’变有百十个行者,都是一样打扮,各执一根铁棒,把那怪围在空中。” 换言之,孙悟空可以根据自己的形像,复制出很多“身外之身”来。

老孙的这种身外身的手段在面向对象的设计领域里,叫做原始模型(Prototype)模式。
LongWayToGo 2002-12-27
  • 打赏
  • 举报
回复
等会儿,我去GOF的书上copy点东西过来......
等我啊!!

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧