设计模式之Prototype

05-04-21 esuchj
    

public abstract class AbstractSpoon implements Cloneable

{

  String spoonName;

  public void setSpoonName(String spoonName) {this.spoonName = spoonName;}

  public String getSpoonName() {return this.spoonName;}

  public Object clone()

  {

    Object object = null;

    try {

      object = super.clone();

    } catch (CloneNotSupportedException exception) {

      System.err.println("AbstractSpoon is not Cloneable");

    }

    return object;

  }

}

有个具体实现(ConcretePrototype):

public class SoupSpoon extends AbstractSpoon

{

  public SoupSpoon()

  {

    setSpoonName("Soup Spoon");

  }

}

调用Prototype模式很简单:

AbstractSpoon spoon = new SoupSpoon();

AbstractSpoon spoon2 = spoon.clone();

我在Jbuilder2005下试验了这些代码,编译器居然报错(指向spoon.clone();),提示incompatible types;Found:java.lang.Object,required:spoon.AbstractSpoon

不解ing。。。

// 在此输入java代码
<p>

    

esuchj
2005-04-21 17:35

知道原因了。。

源码还不是很准确的啊~~

banq
2005-04-25 10:02

Prototype关键在于了解对象的值引用 和值传递等问题,以及和状态相关的一些应用。