【发布时间】:2013-06-16 17:03:42
【问题描述】:
所以,我一直在阅读设计模式,而原型模式让我感到困惑。我相信使用它的要点之一是避免使用 new 运算符。那我看这个例子:
http://sourcemaking.com/design_patterns/prototype/java/1
首先,他们的 Prototype 想法实现了一个 clone() 方法,这很奇怪。维基百科还说我需要一个纯虚拟方法克隆来由子类实现(为什么?)。 Java 不是已经提供了这样的方法,完全按照我们的需要(即创建对象的副本而不是从头开始实例化它)吗?其次,clone方法调用操作符new!这个例子肯定是错的吗? (在那种情况下,我应该在其他地方学习设计模式,嗯?)。有人可以判断这个更正是否正确吗?:
static class Tom implements Cloneable implements Xyz {
public Xyz cloan() {
return Tom.clone(); //instead of new I use clone() from Interface Cloneable
}
public String toString() {
return "ttt";
}
}
感谢任何澄清。
【问题讨论】:
-
"I use clone() from Interface Cloneable" 接口
Cloneable中没有clone()
标签: java design-patterns clone cloneable prototype-pattern