設計模式:原型模式
來源:程序員人生 發布時間:2015-01-07 08:07:17 閱讀次數:3991次
原文地址:http://leihuang.org/2014/12/03/prototype/
Creational 模式
物件的產生需要消耗系統資源,所以如何有效力的產生、管理 與操作物件,1直都是值得討論的課題, Creational 模式即與物件的建立相干,在這個分類下的模式給出了1些指點原則及設計的方向。下面羅列到的全屬于Creational 模式
- Simple Factory 模式
- Abstract Factory 模式
- Builder 模式
- Factory Method 模式
- Prototype 模式
- Singleton 模式
- Registry of Singleton 模式
您從圖書館的期刊從發現了幾篇您感興趣的文章,由于這是圖書館的書,您不可以直接在書中作記號或寫字,所以您將當中您所感興趣的幾個主題影印出來,這下子您便可在影印的文章上畫記重點。
上面這段情形就是利用了今天要講的原型設計模式(prototype).
原型模式(prototype)它是指通過給定1個原型對象來指明所要創建的對象類型,然后復制這個原型對象的辦法創建出同類型的對象。原型模式也屬于創建模式。

原型模型觸及到3個角色:
- 客戶角色(client):客戶端提出創建對象的要求;
- 抽象原型(prototype):這個常常由接口或抽象類來擔負,給出具體原型類的接口;
- 具體原型(Concrete prototype):實現抽象原型,是被復制的對象;
下面我們就來實現1個原型模式,比如呢,我們用不起mac(Mac接口),怎樣辦呢,我們仿制1個假的mac(ImitatedMac)出來嗎.然后我們程序員(Coder)仍然可使用它.
Mac 接口
public interface Mac extends Cloneable{
public void play() ;
public Object clone() ;
}
ImitatedMac 實現Mac接口 --假的Mac
public class ImitatedMac implements Mac {
@Override
public Object clone() {
try {
return super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
return null ;
}
}
@Override
public void play() {
System.out.println("哈哈,我是假的!");
}
}
Coder 類 --程序員
public class Coder {
public static void main(String[] args) {
Mac mac = (Mac) new ImitatedMac().clone() ;
mac.play();
}
}
其實原型模型在java中的使用主要用到了clone方法,大家可以仔細瀏覽1下這篇博客,有助于理解原型設計模式.
2014⑴2-04 00:59:12
Brave,Happy,Thanksgiving !
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈