服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java设计模式之prototype(原型)


  定义:
  用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.
  
  prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。
  
  如何使用?
  因为java中的提供clone()方法来实现对象的克隆(具体了解clone()按这里),所以prototype模式实现一下子变得很简单.
  
  以勺子为例:
  
  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");
    }
  }
  
  
  public class saladspoon extends abstractspoon
  {
    public saladspoon()
    {
      setspoonname("salad spoon");
    }
  }
  
  调用prototype模式很简单:
  
  abstractspoon spoon = new soupspoon();
  abstractspoon spoon = new saladspoon();
  
  当然也可以结合工厂模式来创建abstractspoon实例。
  
  在java中prototype模式变成clone()方法的使用,由于java的纯洁的面向对象特性,使得在java中使用设计模式变得很自然,两者已经几乎是浑然一体了。这反映在很多模式上,如interator遍历模式。

扫描关注微信公众号