国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java設計模式之Prototype(原型)

2019-11-18 12:14:51
字體:
來源:轉載
供稿:網友

  定義:
  用原型實例指定創建對象的種類,并且通過拷貝這些原型創建新的對象.
  
  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遍歷模式。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 莱西市| 贵港市| 龙门县| 云浮市| 陕西省| 栾川县| 德州市| 朝阳市| 玉树县| 新巴尔虎左旗| 万年县| 卢龙县| 禹城市| 麟游县| 延寿县| 仲巴县| 滁州市| 曲麻莱县| 德惠市| 钟山县| 五原县| 西林县| 台中市| 顺平县| 佛坪县| 平罗县| 祁连县| 黄龙县| 响水县| 台东市| 阳谷县| 黔南| 交城县| 杭锦后旗| 马鞍山市| 马山县| 章丘市| 宣武区| 定安县| 贞丰县| 都安|