所以,我一直在阅读关于设计模式的内容,其中原型模式让我困惑。我相信使用它的一个目的是避免使用new运算符。然后我看了这个例子:
http://sourcemaking.com/design_patterns/prototype/java/1
首先,他们的原型实现了一个clone()方法,这很奇怪。维基百科也说我需要通过子类实现一个纯虚方法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";
}
}
感激任何澄清。
Cloneable
接口中的clone()
方法。但是,Cloneable
接口本身并没有clone()
方法。 - newacct