設計模式(1)

2021-08-15 02:58:48 字數 2719 閱讀 2903

單例模式:保證為乙個類只生成唯一的例項物件。也就是說在整個程式空間中該類只存在乙個例項物件。

#include 

using namespace std;

class usermanager

public:

static usermanager* getinstance()

private:

static usermanager *m_instance;

};usermanager *usermanager::m_instance = new usermanager;

int main()

簡單工廠:

靜態工廠方法模式。通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類

#include 

#include

using namespace std;

class operator

;class add:public operator

};class sub:public operator

};// 工廠類:負責建立物件

class factory

};int main()

工廠模式:工廠方法模式同樣屬於類的建立型模式又被稱為多型工廠模式 。工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。

核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角色的情況下引進新的產品。

#include 

#include

using namespace std;

class operator

;class add:public operator

};class sub:public operator

};// 工廠的基類

class absfactory

;// 加法工廠

class factory_add:public absfactory

};// 減法工廠

class factory_sub:public absfactory

};int main()

建造者模式:

builder模式也叫建造者模式或者生成器模式,是由gof提出的23種設計模式中的一種。builder模式是一種物件建立型模式之一,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承和過載的方式,動態地建立具有復合屬性的物件。

物件的建立:builder模式是為物件的建立而設計的模式- 建立的是乙個復合物件:被建立的物件為乙個具有復合屬性的復合物件- 關注物件建立的各部分的建立過程:不同的工廠(這裡指builder生成器)對產品屬性有不同的建立方法

class a

#include 

2#include

3#include

4using

namespace

std;56

// 產品

7class person814

15void show()

1621}

22private:

23vector

parts;

24};

2526

// 建造者抽象類:建造產品的各個部分

27class builder

28;36

37// 負責建立胖子的建造者

38class fatpersonbuilder:public builder

3945

virtual

void builderhead()

4649

virtual

void builderbody()

5053

virtual

void builderhand()

5457

virtual

void builderfeet()

5861

virtual person* getresult()

6265

private:

66person *person;

67};

6869

class thinpersonbuilder:public builder

7076

virtual

void builderhead()

7780

virtual

void builderbody()

8184

virtual

void builderhand()

8588

virtual

void builderfeet()

8992

virtual person* getresult()

9396

private:

97person *person;

98};

99100

// 指揮者:指揮 "建造者" 幹活,指揮者本身不包含產品內容

101class director

102111};

112113

int main()

114

設計模式1

facade模式 當你需要使用乙個很複雜的系統,你作為乙個使用者,當然希望使用起來越簡單越好,最好是乙個概念上的功能只需要呼叫乙個函式介面。這時候向你提供系統的人就要考慮使用facade模式了。通過這種模式改進後,系統提供者把系統的對外使用的複雜度降低了,使用者就可以很簡單的使用系統了。舉例來說,在...

設計模式 1

oo 基礎 1 抽象 2 封裝 3 多型 4 繼承 oo原則 1 封裝變化 2 多用組合,少用繼承 3 針對介面程式設計,不針對實現程式設計 4 為互動物件之間的松耦合設計而努力 5 類應該對擴充套件開放,對修改關閉 6 依賴抽象,不要依賴具體類 7 只和朋友交談 8 別找我,我會找你 9 類應該只...

設計模式1

讀後感 陸續花了三周時間,閱讀了 大話設計模式 的電子書版本。在此之前也閱讀過其它講解設計模式的書,但是往往過於抽象,舉例複雜,讀起來很是吃力,都堅持不下來 閱讀這本書比較輕鬆。本書的優點 就是淺顯易懂,適合於入門者 本書的缺點 就是有些地方講解並不深入全面 並沒有給出用.net實現時,如何實現更優...