我工作的那點事--學習《設計模式》例項應用(Prototype模式)
這個模式比較好理解,應用也比較廣泛的,說白了就是將別的東西copy一份過來,以後在復件上的修改和原件沒有什麼關係。[@more@]jdon對Prototype的定義是這樣的:
用原型例項指定建立物件的種類,並且透過複製這些原型建立新的物件.Prototype模式允許一個物件再建立另外一個可定製的物件,根本無需知道任何如何建立的細節,工作原理是:透過將一個原型物件傳給那個要發動建立的物件,這個要發動建立的物件透過請求原型物件複製它們自己來實施建立。
我就不加多解釋了,舉個工作中的例子吧,這樣比較形象 也容易理解:
要開會了,肯定有些比較重要的檔案 大家都要進行閱讀,原件只有一份不可能每個人都在上面做筆記,解決的方法就是: 當然是影印了,每個人手一份,隨便你怎麼塗鴉:)
1.原件:
public class ImportantDoc implements Cloneable
{
String docName;
String docContext;
public void setDocName(String name) {this.docName = name;}
public String getDocName() {return this.docName;}
public void setDocContext(String context) {this.docContext = context;}
public String getDocContext() {return this.docContext;}
public Object clone()
{
Object object = null;
try {
object = super.clone();
} catch (CloneNotSupportedException exception) {
System.err.println("ImportantDoc is not Cloneable");
}
return object;
}
}
就這麼簡單,哈哈,現在你可以隨便影印了。
ImportantDoc doc1 = new ImportantDoc();
ImportantDoc doc2 = new ImportantDoc();
ImportantDoc doc3 = new ImportantDoc();
ImportantDoc doc4 = new ImportantDoc();
………………
我這邊只是簡單的講述,比較深入的可以閱讀:
《JAVA中的指標,引用及物件的clone》: http://www-128.ibm.com/developerworks/cn/java/l-jpointer/index.html
用原型例項指定建立物件的種類,並且透過複製這些原型建立新的物件.Prototype模式允許一個物件再建立另外一個可定製的物件,根本無需知道任何如何建立的細節,工作原理是:透過將一個原型物件傳給那個要發動建立的物件,這個要發動建立的物件透過請求原型物件複製它們自己來實施建立。
我就不加多解釋了,舉個工作中的例子吧,這樣比較形象 也容易理解:
要開會了,肯定有些比較重要的檔案 大家都要進行閱讀,原件只有一份不可能每個人都在上面做筆記,解決的方法就是: 當然是影印了,每個人手一份,隨便你怎麼塗鴉:)
1.原件:
public class ImportantDoc implements Cloneable
{
String docName;
String docContext;
public void setDocName(String name) {this.docName = name;}
public String getDocName() {return this.docName;}
public void setDocContext(String context) {this.docContext = context;}
public String getDocContext() {return this.docContext;}
public Object clone()
{
Object object = null;
try {
object = super.clone();
} catch (CloneNotSupportedException exception) {
System.err.println("ImportantDoc is not Cloneable");
}
return object;
}
}
就這麼簡單,哈哈,現在你可以隨便影印了。
ImportantDoc doc1 = new ImportantDoc();
ImportantDoc doc2 = new ImportantDoc();
ImportantDoc doc3 = new ImportantDoc();
ImportantDoc doc4 = new ImportantDoc();
………………
我這邊只是簡單的講述,比較深入的可以閱讀:
《JAVA中的指標,引用及物件的clone》: http://www-128.ibm.com/developerworks/cn/java/l-jpointer/index.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9879276/viewspace-983116/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 我工作的那點事--學習《設計模式》例項應用(strategy模式)設計模式
- 我工作的那點事--學習《設計模式》例項應用(Mediator模式)設計模式
- 我工作的那點事--學習《設計模式》例項應用(factory模式)設計模式
- 我工作的那點事--學習《設計模式》例項應用(Builder模式)設計模式UI
- 我工作的那點事--學習《設計模式》例項應用(Observer模式)設計模式Server
- 我工作的那點事--學習《設計模式》例項應用(decorator模式)設計模式
- 我工作的那點事--學習《設計模式》例項應用(Singleton模式)設計模式
- 我工作的那點事--學習《設計模式》例項應用(Adapter模式)設計模式APT
- 我工作的那點事--學習《設計模式》例項應用(composite模式)設計模式
- 我工作的那點事--學習《設計模式》例項應用(Facade模式)設計模式
- 我學設計模式 之 單例模式設計模式單例
- 設計模式學習-單例模式設計模式單例
- 設計模式學習之單例模式設計模式單例
- 設計模式應用舉例設計模式
- 我的Java設計模式-單例模式Java設計模式單例
- 設計模式快速學習(三)單例模式設計模式單例
- 設計模式學習筆記——單例模式設計模式筆記單例
- JavaScript設計模式學習之單例模式JavaScript設計模式單例
- 設計模式-原型模式(Prototype)設計模式原型
- 小學生學習設計模式之單例模式設計模式單例
- 設計模式之Prototype設計模式
- C++學習隨筆——簡單的單例設計模式例項C++單例設計模式
- 從JavaScript學習設計模式-02單例模式JavaScript設計模式單例
- 設計模式學習筆記之單例模式設計模式筆記單例
- Android 設計模式の單例模式——應用最廣的模式Android設計模式單例
- 設計模式--原型模式(Prototype Pattern)設計模式原型
- 設計模式之-原型模式-Prototype設計模式原型
- 設計模式學習(一)單例模式補充——單例模式析構設計模式單例
- 設計模式學習筆記(九)橋接模式及其應用設計模式筆記橋接
- 設計模式學習筆記(十二)享元模式及其應用設計模式筆記
- 設計模式的征途—5.原型(Prototype)模式設計模式原型
- Java設計模式學習筆記(五) 單例模式Java設計模式筆記單例
- 設計模式學習-使用go實現單例模式設計模式Go單例
- 我所理解的設計模式(C++實現)——原型模式(Prototype Pattern)設計模式C++原型
- 重學設計模式-單例模式設計模式單例
- 《設計模式 》 - 4. 原型模式( Prototype )設計模式原型
- 設計模式--原型模式Prototype(建立型)設計模式原型
- 談談設計模式~原型模式(Prototype)設計模式原型