設計模式筆記02

2021-10-09 11:37:00 字數 1188 閱讀 4601

提供訪問集合的方法,並不暴露集合內部

允許客戶使用一致的方式處理物件集合或單個物件。

允許物件在執行時不斷發生狀態的變化

狀態模式側重於程式執行時狀態的不斷變化,而策略模式往往只有一種最好的委託模式

包裝乙個物件,提供一些訪問控制

虛擬**:**大開銷物件,延遲載入(如在物件載入出來前,載入較小物件替代)

遠端**:**網路另一邊的物件,增加解析等操作,用於通訊

保護**:控制一些資料方法的操作

復合模式:在乙個解決法案中結合了多個設計模式,以解決一般或重**生的問題

mvc:最經典的一種復合模式,全稱是模式—檢視—控制器(model—view—controller)。將業務邏輯,資料和介面顯示進行了解耦。

mvc包含的一般模式:

1:觀察者模式,主題-模型,觀察者-控制器、檢視。當模型發生變化時,解耦通知了控制器和檢視,模型永遠不知道他們倆的存在。

2:組合模式:檢視的ui部分常常為樹形結構的,使用組合模式,可統一對集合物件和單一物件的操作。

3:策略模式:檢視組合控制器(策略),檢視可動態調整使用不同的控制器策略,而完全不知道控制器如何處理使用者輸入。

etc...

1、多用組合善用繼承。(組合更加靈活,繼承方法全包含)

2、類應該對擴充套件開發,而對修改關閉。(增新不除舊)

3、依賴抽象而非具體類。(依賴倒置,都應該依賴抽象)

4、只和你的密友交談(關係不深(只有一兩個方法要呼叫),增加第三方)

5、單一責任,每個類責任越單一越好。

6、如何出現父類的地方,一定能用子類替換

HeadFirst設計模式學習筆記02

執行時擴充套件,遠比編譯時繼承威力大。熟悉了裝飾的技巧,能夠在不改變任何底層 的情況下,給你的物件賦予新的職責。星巴茲starbuzz以擴張速度快聞名,準備更新訂單系統,以適應他們的飲料 要求。原先類的設計 現在想購買咖啡時,可以要求在其中加入各種調料,如蒸奶 steamed milk 豆漿 soy...

設計模式學習筆記 02 單例模式

什麼是單例模式?乙個類只有乙個例項存在,同時提供能對該例項加以訪 問的靜態訪問方法。實現方式 單例模式網上有好幾個實現方式,其中比較耳熟的是一下三種 1 餓漢模式 2 懶漢模式 3 雙重檢查 其中懶漢模式執行緒不安全,餓漢模式與雙重檢查是執行緒安全的,雙重檢查是在懶漢模式的基礎上做修改,達到執行緒安...

設計模式02 模板設計模式

需求 獲取一段程式執行的時間。原理 獲取程式開始和結束的時間並相減即可。當 完成優化後,就可以解決這類問題。這種方式,模版方法設計模式。什麼是模版方法呢?在定義功能時,功能的一部分是確定的,但是有一部分是不確定,而確定的部分在使用不確定的部分,那麼這時就將不確定的部分暴露出去。由該類的子類去完成。a...