設計模式筆記11 構建器

2021-10-01 06:20:33 字數 1266 閱讀 9252

將乙個複雜物件的構建其表示相分離,使得同樣的構建過程(穩定)可以建立不同的表示(變化)。 ——《設計模式》gof

class

house

;class

housebuilder

virtual

~housebuilder()

protected

:

house* phouse;

virtual

void

buildpart1()

=0;virtual

void

buildpart2()

=0;virtual

void

buildpart3()

=0;virtual

void

buildpart4()

=0;virtual

void

buildpart5()

=0;}

;class

stonehouse

:public house

;class

stonehousebuilder

:public housebuilder

virtual

void

buildpart2()

virtual

void

buildpart3()

virtual

void

buildpart4()

virtual

void

buildpart5()

};class

housedirector

house*

construct()

bool flag=phousebuilder-

>

buildpart3()

;if(flag)

phousebuilder-

>

buildpart5()

;return phousebuilder-

>

getresult()

;}};

注:housebuilder與housedirector寫在一起也沒什麼問題,主要看類的複雜程度,如果太複雜則抽離抽離抽離…

設計模式(11) 直譯器模式

給定乙個語言,定義乙個文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。如果一種特定型別的問題發生的頻率足夠高,那麼可能就值得將該問題的各個例項表述為乙個簡單語言中的句子,這樣就可以構建乙個直譯器,該直譯器通過解釋這些句子來解決該問題。就比如正規表示式,它就是直譯器模型的一種...

設計模式11 裝飾器

裝飾器模式 decorator pattern 允許向乙個現有的物件新增新的功能,同時又不改變其結構。這種型別的設計模式屬於結構型模式,它是作為現有的類的乙個包裝。這種模式建立了乙個裝飾類,用來包裝原有的類,並在保持類方法簽名完整性的前提下,提供了額外的功能。意圖 動態地給乙個物件新增一些額外的職責...

設計模式入門筆記(1 1)

設計模式是一種用於 設計的經驗總結。helloworld是不需要使用設計模式的,設計模式的主要應用場景是在大型應用的構建上,假想一下,在2萬行 中增加功能,如果程式可讀性差,將難以擴充套件和優化。所以,設計模式主要聚焦 注 面對物件三大特點 抽象與例項 舉個栗子 以吃早餐為例,每天早晨都會吃早餐,但...