建造者模式(builder pattern):將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。建造者模式是一種物件建立型模式。通過這個定義,我們可以得出建造者是一種建立型模式,也就是說建造者模式的輸出是乙個物件,也就是uml類圖中的product。
我們先看看建造者模式的uml類圖:
// mvc.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include
#include
#include
using namespace std;
class log
; void setsize(int size)
void setcolor(int color)
void writefile( bool
value )
void printinfo()
;class ilogbuider
; virtual ~ilogbuider(){};
virtual
void setcolor() = 0;
virtual
void setsize() = 0;
virtual
void writefile() = 0;
};class dlogbuiler:public ilogbuider
void setsize()
void setcolor()
void writefile()
log* getlog()
private:
auto_ptrm_product;
};class elogbuiler:public ilogbuider
void setsize()
void setcolor()
void writefile()
log* getlog()
private:
auto_ptrm_product;
};class wdirector
; void construct(ilogbuider* builder)
};class ldirector
; void construct(ilogbuider* builder)
};void main()
建造者模式屬於一種建立型的模式,主要是對product進行封裝從而能適應不同的情況,同時product內部有著穩定的建立過程。 設計模式在遊戲中的應用 簡單工廠模式(一)
自己作為乙個剛畢業的菜鳥,有幸能夠和牛人們一起工作很開心。當時策劃提出乙個需求,需要針對每個職業進行不同的能量恢復。我當時接到這個需求,心中暗喜,這還不簡單,把每個職業的恢復率放到乙個陣列裡面,然後接著各種if.else.當時還為這種能在陣列裡面直接修改資料,讓資料和邏輯分離開來感到開心。接著策劃提...
設計模式在遊戲中的應用 模板方法(七)
模板方法這個名字看著很陌生,其實在遊戲中大量地使用了模板方法,因為遊戲中存在玩家 npc和靜態物體等不同的物件,使用多型特性能很好地進行區分。模板方法的定義是 模板方法模式 在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的...
四 JavaScript設計模式之建造者模式
一 建造者模式模式概念 建造者模式可以將乙個複雜的物件的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。也就是說如果我們用了建造者模式,那麼使用者就需要指定需要建造的型別就可以得到它們,而具體建造的過程和細節就不需要知道了。建造者模式實際就是乙個指揮者,乙個建造者,乙個使用指揮者呼叫具體建...