定義 主要將數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)操作分離。 解決問題 穩(wěn)定的數(shù)據(jù)結(jié)構(gòu)和易變的操作耦合問題。 使用場景 需要對一個對象結(jié)構(gòu)中的對象進(jìn)行很多不同的并且不相...

定義 主要將數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)操作分離。 解決問題 穩(wěn)定的數(shù)據(jù)結(jié)構(gòu)和易變的操作耦合問題。 使用場景 需要對一個對象結(jié)構(gòu)中的對象進(jìn)行很多不同的并且不相...
定義 定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。 角色 Ab...
定義 定義一系列的算法,把它們一個個封裝起來, 并且使它們可相互替換 解決問題 在有多種算法相似的情況下,使用 if...else 所帶來的復(fù)雜...
定義 允許對象在內(nèi)部狀態(tài)發(fā)生改變時改變它的行為,對象看起來好像修改了它的類。 解決問題 對象的行為依賴于它的狀態(tài)(屬性),并且可以根據(jù)它的狀態(tài)改...
定義 定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新。 解決問題 一個對象狀態(tài)改變給其他...
定義 在不破壞封裝性的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài)。 解決問題 所謂備忘錄模式就是在不破壞封裝的前提下,捕獲一個對...
定義 用一個中介對象來封裝一系列的對象交互,中介者使各對象不需要顯式地相互引用,從而使其耦合松散,而且可以獨立地改變它們之間的交互。 解決問題 ...
定義 提供一種方法順序訪問一個聚合對象中各個元素, 而又無須暴露該對象的內(nèi)部表示。 解決問題 不同的方式來遍歷整個整合對象。 何時使用 遍歷一個...
定義 給定一個語言,定義它的文法的一種表示,并定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。 文法:即語法規(guī)則。在解釋器模式中每一個語...
定義 將一個請求封裝成一個對象,從而使您可以用不同的請求對客戶進(jìn)行參數(shù)化。 角色 1、received 真正的命令執(zhí)行對象2、Command3、...