策略模式:定義演算法族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化獨立於使用演算法的客戶。
oo原則:
封裝變化
多用組合,少用繼承
針對介面程式設計,不針對實現程式設計
oo基礎:
抽象封裝
多型繼承
觀察者模式:在物件之間定義一對多的依賴,這樣一來,當乙個物件改變狀態,依賴它的物件都會收到通知,並自動更新。
oo原則:
為互動物件之間的松耦合設計而努力
裝飾者模式:動態地將責任附加到物件上。想擴充套件功能,裝飾者提供有別於繼承的另一種選擇。
oo原則:
對擴充套件開放,對修改關閉。
工廠方法模式:定義了乙個建立物件的介面,但由子類決定要例項化的類是哪乙個。工廠方法讓類把例項化推遲到子類。
oo原則:
依賴抽象,不要依賴具體類。
單件模式:確保乙個類只有乙個例項,並提供全域性訪問點。
命令模式:將請求封裝成物件,這可以讓你適用不同的請求、佇列,或日誌請求來引數化其他物件。命令模式也可以支援撤銷操作。
介面卡模式:將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本不相容的類可以合作無間。
外觀模式:提供乙個統一的介面,用來訪問子系統中的一群介面。外觀定義了乙個高層介面,讓子系統更容易使用。
oo原則:
只和朋友交談。
模板方法模式:在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟。
oo原則:別找我,我會找你。
迭代器模式:提供一種方法順序訪問乙個聚合物件中的各個元素,而不暴露其內部的表示。
組合模式:允許你將物件組成樹形結構來表現「整體/部分」的層次結構。組合能讓客戶以一致的方式處理個別物件和物件組合。
oo原則:
類應該只有乙個改變的理由。
狀態模式:允許物件在內部狀態改變時改變它的行為,物件看起來好像修改了它的類。
**模式:為另乙個物件提供乙個替身或佔位符以訪問這個物件。
**:遠端**、虛擬**、保護**、防火牆**、智慧型引用**、快取**、同步**、複雜隱藏**、寫入時複製**。
復合模式:結合兩個或以上的模式,組成乙個解決方案,解決一再發生的一般性問題。
mvc:結合觀察者模式、策略模式、組合模式的復合模式。
模式:在某情境下,針對某問題的某種解決方案。
「力」:塑造並控制解決方案。
模式分類:
建立型:涉及將物件例項化,提供乙個方法將客戶從所需要例項化的物件中解耦。
行為型:涉及到類和物件如何互動及分配職責。
結構型:把類或物件組合到更大的結構中。
反模式:告訴你如何採用乙個不好的解決方案解決乙個問題。
橋接模式:不止改變你的實現,也改變你的抽象。適合使用在需要跨越多個平台的圖形和視窗系統上。
生成器模式:封裝乙個產品的構造過程,並允許按步驟構造。適合建立組合結構。
責任鏈模式:讓乙個以上的物件有機會能夠處理某個請求。適用於 視窗系統中,處理滑鼠和鍵盤之類的事件。
蠅量模式:讓某個類的乙個勢力能用來提供許多「虛擬例項」。適用於乙個類的許多例項能被同一方法控制的情況。
直譯器模式:為語言建立解析器。適用於建立乙個簡單的語言。
備忘錄模式:讓物件返回之前的狀態。適用於儲存狀態。
原型模式:建立給定類的例項的過程很昂貴或很複雜時。適用於處理複雜的類層次。
訪問者模式:讓乙個物件的組合增加新的能力,且封裝並不重要時。
Head First 設計模式讀書心得 一
head first 設計模式這本書,從思維認知的角度將原本難以理解和記識的設計模式將得通俗易懂。雲認知 有關思考的思考 如何你想掌握一些知識,學習前要不短的暗示自己,讓你的大腦知道 你學習的這些新的知識很重要 或許你正在為一家你嚮往已經的公司的面試準備寫知識,你將要學習的這些知識對你通過面試至關重...
head first設計模式讀書記錄
設計原則 1 針對介面程式設計而非針對實現 2 多用組合,少用繼承 3 復用的潛力 4 封裝變化 5 開閉原則 對擴充套件開放,對修改關閉 6 依賴倒置原則 7 越常用,越不應修改,把可能的修改扔給必須要改的部分,最好扔給擴充套件。封裝變化 8 最少知識原則 減少類與類的重合,只與密友交流 9 越懶...
HeadFirst設計模式 讀書筆記 005
命令模式 允許將發出請求的物件和接受並執行這些請求的物件分割開來,即實現請求呼叫者和請求接受者之間的解耦。定義 將請求封裝成物件,以便使用不同的請求 佇列或者日誌來引數化其他物件。呼叫命令的是invoker,執行命令的實際上是receiver。通過命令模式,將各種動作封裝成command,實現了in...