锁定老帖子 主题:Prototype - 原型创建模式
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-04-18
下面来说说Prototype模式。首先还是照旧先来看看牛人想出Prototype模式的意图。 用原型实例制定创建对象的种类,并且通过拷贝这些原型创建新的对象。(G4) 场景 我们手头上已经得到一个Product实例了,现在我们由于业务的要求,需要再获取若干个完全一样或相近的Product,好完成其他的工作。这个时候我们要做的工作就是复制一个。按照以往的做法,我们是每要求复制出一个的时候,我们会先new出一个对象,然后逐个属性地先从样板Product中get出来再set到新对象中去。 java 代码
java 代码
程序员总是为如何能够更懒惰而勤奋地努力着。这样的劳模可不是好的程序员该做的事,这种烦琐而重复性高的复制能不能只写一遍呢?答案是“可以”,而且很简单。我们只需要在原型对象中增加一个clone()函数即可,由类本身来帮我们完成这个复制工作。 java 代码
这样,复制创建对象就简单了很多了。 java 代码
本来故事到这里便结束了。可是由于Java为我们做了更多,让我们更方便地使用Prototype模式,为了让懒惰进行到底,也同时体谅一下Java的良苦用心,有义务要在这里说说Java为我们做的Prototype模式的简化。大家都知道在Java中所有的类都是java.lang.Object的子类,而且在Object中已经定义了clone()方法。通过使用这个clone()方法我们就可以简单方便地进行复制创建了。 可是这个clone()方法可不能随便使用,冒失失地调用surper.clone()是会抛出CloneNotSupportedException异常的。我们还需要实现Cloneable接口才行。 java 代码
简单的一句super.clone()就可以完成我们的各种setter,getter操作。确实很方便。 我们在进行clone的时候仍然使用下面的句子就可以进行对象复制创建了。 java 代码
(完) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-11
什么情况下才用的着这种模式呢...
|
|
返回顶楼 | |
发表时间:2007-05-22
没完没完,只说了浅clone ,还有深clone
现在不谈模式了,用到啥子就是啥子 |
|
返回顶楼 | |
发表时间:2007-05-23
javastudy 写道 复制多个对象啊
我的意思是什么情况下才用的着需要复制多个同样的对象出来?? |
|
返回顶楼 | |
发表时间:2007-05-23
不想下流在运用对象时对对象进行操作
当一个传值引用来用时。。。。 不过楼主发入门版 的好一点。。。 因为楼主想要讨论的东西 明显没有什么意义。 |
|
返回顶楼 | |
发表时间:2007-06-04
如果,可以举个简单的运用例子就,更好了
|
|
返回顶楼 | |
浏览 6860 次