29日学习原型设计模式
今天阅读一设计模式的pdf,学习到原型设计模式的时候,看如下的例子有些摸不到头脑了。通过实践,判定其为错误的实现,对该pdf的作者很无语的。
其实现的代码如下:
public abstract class AbstractSpoon implements Cloneable{@Overrideprotected Object clone() throws CloneNotSupportedException {System.out.println("clone");// TODO Auto-generated method stubObject object = null;try{object = super.clone();}catch(CloneNotSupportedException e){}return object;}public abstract void out();private String spoonName = null;public String getSpoonName() {return spoonName;}public void setSpoonName(String spoonName) {this.spoonName = spoonName;}}public class Spoon1 extends AbstractSpoon{public Spoon1(){setSpoonName("spoon1");}@Overridepublic void out() {// TODO Auto-generated method stubSystem.out.println(this.getSpoonName());}}public class Spoon2 extends AbstractSpoon{public Spoon2(){setSpoonName("spoon2");}public void out(){System.out.println(getSpoonName());}}public class MainTest {public static void main(String[] args){AbstractSpoon spoon1 = new Spoon1();AbstractSpoon spoon2 = new Spoon2();System.out.print("spoon1 ");spoon1.out();System.out.print("spoon2 ");spoon2.out();}}