熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

java設計模式之Prototype(原型)

2013-11-23 19:42:47  來源: Java高級技術 

  定義:
  用原型實例指定創建對象的種類並且通過拷貝這些原型創建新的對象
  
  Prototype模式允許一個對象再創建另外一個可定制的對象根本無需知道任何如何創建的細節工作原理是:通過將一個原型對象傳給那個要發動創建的對象這個要發動創建的對象通過請求原型對象拷貝它們自己來實施創建
  
  如何使用?
  因為Java中的提供clone()方法來實現對象的克隆(具體了解clone()按這裡)所以Prototype模式實現一下子變得很簡單
  
  以勺子為例
  
  public abstract class AbstractSpoon implements Cloneable
  {
    String spoonName;
  
    public void setSpoonName(String spoonName) {thisspoonName = spoonName;}
    public String getSpoonName() {return thisspoonName;}
  
    public Object clone()
    {
      Object object = null;
      try {
        object = superclone();
      } catch (CloneNotSupportedException exception) {
        Systemerrprintln(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遍歷模式
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27354.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.