java設計模式連載(4) –原型模式

來源:互聯網
上載者:User

java設計模式連載(4) --原型模式

 

名稱:Prototype

意圖:

用原型執行個體指定建立對象的種類,並且通過拷貝這些原型建立新的對象。

 

適用性:

  • 當要執行個體化的類是在運行時刻指定時,例如,通過動態裝載;或者
  • 為了避免建立一個與產品類層次平行的工廠類層次時;或者
  • 當一個類的執行個體只能有幾個不同狀態組合中的一種時。建立相應數目的原型並複製它們可能比每次用合適的狀態手工執行個體化該類更方便一些。

     

     

    執行個體:

     

            1.建立一個具有複製功能的原型 

     

    package The_Prototype_Pattern;public class Sheep implements  Cloneable{    private String name;        public void setName(String name) {        this.name = name;    }        public String getName() {        return this.name;    }    public Object clone(){        try {            return super.clone();        } catch (Exception e) {            e.printStackTrace();            return null;        }    } }

        2.     寫一個複製的類   

              

    package The_Prototype_Pattern;public class CloneSheep  extends  Sheep{  public  CloneSheep(String name){          this.setName(name);  }}
        

       3. 寫一個測試類別

    package The_Prototype_Pattern;public class Test {        public static void main(String[] args){    Sheep   pro =  new   CloneSheep("複製羊");    Sheep pro4 = new   CloneSheep("複製羊");         Sheep pro2 =  (Sheep)pro.clone();                 Sheep pro3 = (Sheep)pro2.clone();            System.out.println(pro.getName()+":"+pro);           System.out.println(pro2.getName()+":"+pro2);        System.out.println(pro3.getName()+":"+pro3);        System.out.println(pro4.getName()+":"+pro4);           }}

     

     

    4. 多謝瀏覽

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.