浏览 2359 次
锁定老帖子 主题:了解原型模式
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-27
最后修改:2008-12-05
原型模式(Prototype): 用原型实例指定创建对象的种类,并且通过拷贝原型来创建新的实例对象。它允许一个对象再创建另外一个可定制的对象,根本无需知道任何创建细节,工作原理,通过将一个原型对象传给那个要发动创建的对象,这个发动创建对象通过请求原型对象拷贝它们自己来创建。 通俗点,就是通过拷贝来进行创建实例。 例如: 代码一: public class AbstractSpoon implements Cloneable{ String spoonName; public String getSpoonName() { return spoonName; } public void setSpoonName(String spoonName) { this.spoonName = spoonName; } public Object clone(){ Object object = null; try { object = super.clone(); System.out.println("clone is ok"); } catch (CloneNotSupportedException e) { // TODO Auto-generated catch block System.err.println("AbstractSpoon is not Cloneable"); } return object; } } 代码二 public class SoupSpoon extends AbstractSpoon{ public SoupSpoon(){ setSpoonName("soup spoon"); } public static void main(String[] args){ AbstractSpoon spoon = new SoupSpoon(); System.out.println(spoon); AbstractSpoon spoon1 = (AbstractSpoon) spoon.clone(); System.out.println(spoon1); AbstractSpoon spoon2 = (AbstractSpoon) spoon1.clone(); System.out.println(spoon2); } }
运行结果如下。 com.cn.prototype.SoupSpoon@757aef
从结果看,在后两次调用通过SoupSpoon的实例对象的clone(),还是创建了SoupSpoon实例.
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |