23種設計模式(二)元件協作之模板方法
23種設計模式(三)元件協作之策略模式
23種設計模式(四)元件協作之觀察者模式
23種設計模式(五)單一職責之裝飾模式
23種設計模式(六)單一職責之橋模式
23種設計模式(七)物件建立之工廠方法
23種設計模式(八)物件建立之抽象工廠
23種設計模式(九)物件建立之原型模式
23種設計模式(十)物件建立之構建器
23種設計模式(十一)物件效能之單件模式
23種設計模式(十二)物件效能之享元模式
23種設計模式(十三)介面隔離之門面模式
23種設計模式(十四)介面隔離之**模式
23種設計模式(十五)介面隔離之介面卡
23種設計模式(十六)介面隔離之中介者
23種設計模式(十七)狀態變化之狀態模式
23種設計模式(十八)狀態變化之備忘錄
23種設計模式(十九)資料結構之組合模式
23種設計模式(二十)資料結構之迭代器
23種設計模式(二十一)資料結構之職責鏈
23種設計模式(二十二)行為變化之命令模式
23種設計模式(二十三)行為變化之訪問器
23種設計模式(二十四)領域規則之解析器
在軟體系統中,經常面臨著「某些結構複雜的物件」的建立工作;由於需求的變化,這些物件經常面臨著劇烈的變化,但是它們卻擁有比較穩定一致的介面。
之前的工廠方法和抽象工廠將抽象基類和具體的實現分開。原型模式也差不多,但是原型模式將抽象基類合併。
//抽象類
class
isplitter
};
//具體類
class
binarysplitter
:public isplitter};
class
txtsplitter
:public isplitter};
class
picturesplitter
:public isplitter};
class
videosplitter
:public isplitter
};
class
mainform
:public form
void
button1_click()
};
使用原型例項指定建立物件的種類,然後通過拷貝這些原型來建立新的物件。
什麼時候使用原型,什麼時候使用工廠最大的區分點就在於:用工廠方法建立物件是不是非常簡單的幾個步驟就可以把這個物件建立出來,還是說需要考慮物件很複雜的中間狀態,然後又很希望保留這個中間狀態,如果是後者的話就用原型。
prototype
模式同樣用於隔離類物件的使用者和具體型別(易變類)之間的耦合關係,它同樣要求這些「易變類」擁有穩定的介面。
prototype
模式對於「如何建立易變類」的實體物件「採用」原型轉殖的方法來做,它使得我們可以非常靈活地動態建立「擁有某些穩定介面」的新物件–所需工作僅僅是註冊乙個新類的物件(即原型),然後在任何需要的地方clone
。
prototype
模式中的clone
方法可以利用某些框架中的序列化來實現深拷貝。
23種設計模式 十 物件建立之構建器
23種設計模式 二 元件協作之模板方法 23種設計模式 三 元件協作之策略模式 23種設計模式 四 元件協作之觀察者模式 23種設計模式 五 單一職責之裝飾模式 23種設計模式 六 單一職責之橋模式 23種設計模式 七 物件建立之工廠方法 23種設計模式 八 物件建立之抽象工廠 23種設計模式 九 ...
23種設計模式 七 物件建立之工廠方法
23種設計模式 二 元件協作之模板方法 23種設計模式 三 元件協作之策略模式 23種設計模式 四 元件協作之觀察者模式 23種設計模式 五 單一職責之裝飾模式 23種設計模式 六 單一職責之橋模式 23種設計模式 七 物件建立之工廠方法 23種設計模式 八 物件建立之抽象工廠 23種設計模式 九 ...
了解23種設計模式之原型模式
一,什麼是原型模式。prototype 模式 是一種物件建立型模式,它採取複製原型物件的方法來建立物件的例項。使用prototype模式建立的例項,具有與原型一樣的資料。二,原型模式的特點。由原型物件自身建立目標物件,通過實現介面 cloneable 目標物件是原型物件的乙個轉殖,不僅僅是具有相同的...