先來看乙個《設計模式》中的例子,這段**很好的簡單描述了乙個迷宮的設計和實現。只要在加點函式定義它也就可以工作了。但是它很不靈活。它對迷宮的布局進行硬編碼。並且它也對迷宮的構件進行了硬編碼。
建立型模式顯示如何使得這個設計更靈活,但未必更小。特別是,它們將便於修改定義乙個迷宮構件的類。
假設你想在乙個包含(所有的東西)施了魔法的迷宮的新遊戲中
重用乙個已有的迷宮布局。施了魔法的迷宮遊戲有新的構件,像doorneedingspell,它是一扇僅隨著乙個咒語才能被鎖上和開啟的門。你怎樣才能較容易的改變createmaze以讓它用這些新型別的物件建立迷宮呢?
這種情況下,改變的最大障礙是對被例項化的類進行了硬編碼。建立型模式提供了多種不同的方法從例項化它們的**中除去對這些具體類的顯示引用:
剩下的建立型模式,singleton模式可以保證每個遊戲中僅有乙個迷宮而且所有的遊戲物件都可以迅速訪問它。
class mapsite ;
class room : public mapsite ;
class wall : public mapsite
class door : public mapsite ;
class maze ;
class mazegame ;
maze* mazegame::createmaze()
提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。
將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。
定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factory method使乙個類的例項化延遲到其子類。
用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。
保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。
建立型模式 原型模式
使用原型例項指定建立物件的種類,並且通過轉殖這些原型建立新的物件 原理是將乙個原型物件傳給要發動建立的物件,該物件通過請求原型物件轉殖自己來建立過程 轉殖方法 public prototype clone jdk中為我們提供了轉殖的方法clone 從object繼承下來,乙個物件要實現轉殖,需要實現...
建立型模式 原型模式
原型 prototype 模式主要用於建立物件的轉殖,通常其最簡單的形式就是採用自定 clone 函式並 傳入物件引數以返回此物件的乙個副本,這在 python 實作上可使用內定 copy.cop y 或 copy.deepcopy 函式來達到此目的。當已有乙個物件但對此物件的某些部分會被變更卻又想...
原型模式 建立型模式
文章首發個人部落格 如果我們有乙個類 sheep 它裡面有兩個屬性,名稱 name 年齡 age 現在我們有乙個它的例項 s1 我們需要按照這個例項的屬性再去建立兩個物件。1 sheep data public class sheep 2 main public class main 原型模式 用原...