《Head First 設計模式》讀後總結:基礎,原則,模式

基礎

  • 抽象
  • 封裝
  • 多態
  • 繼承

原則

  • 封裝變化
  • 多用組合,少用繼承
  • 針對接口編程,不針對實現編程
  • 爲交互對象之間的鬆耦合設計而努力
  • 類應該對擴展開放,對修改關閉
  • 依賴抽象,不要依賴具體類
  • 只和朋友交談
  • 別找我,我會找你
  • 類應該只有一個改變的理由

模式

  • 策略(Strategy)
    場景:鴨子行爲
    定義:定義了算法簇,分別封裝起來,讓他們之間能夠互相替換,此模式讓算法的變化獨立於使用算法的客戶。
    算法

  • 觀察者(Observer)
    場景:氣象監測
    定義:定義了對象之間的一對多依賴,這樣一來,當一個對象改變狀態時,它的全部依賴者都會收到通知並自動更新。
    編程

  • 裝飾者(Decorator)
    場景:咖啡飲料
    定義:動態地將責任附加到對象上。若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。
    設計

  • 工廠方法(Factory Method)
    場景:披薩店
    定義:定義了一個建立對象的接口,但由子類決定要實例化的類是哪個。工廠方法讓類把實例化推遲到子類。
    3d

  • 抽象工廠(Abstract Factory)
    場景:披薩原料
    定義:提供一個接口,用於建立相關或依賴對象的家族,而不須要明確指定具體類。
    代理

  • 單件模式(Singleton)
    場景:巧克力鍋爐
    定義:確保一個類只有一個實例,並提供一個全局訪問點。
    日誌

  • 命令(Command)
    場景:遙控器
    定義:將「請求」封裝成對象,以便使用請求、隊列或者日誌來參數化其餘對象。命令模式也支持可撤銷的操做。
    server

  • 適配器(Adapter)
    場景:電源適配器
    定義:將一個類的接口,轉換成客戶指望的另外一個接口。適配器讓本來接口不兼容的類能夠合做無間。
    對象

  • 外觀(Facade)
    場景:家庭影院
    定義:提供了一個統一的接口,用來訪問子系統中的一羣接口。外觀定義了一個高層接口,使子系統更容易使用。
    blog

  • 模板方法(Template Method)
    場景:茶和咖啡
    定義:在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。模板方法能夠使得子類在不改變算法結構的狀況下,從新定義算法中的某些步驟。
    繼承

  • 迭代器(Iterator)
    場景:遍歷菜單
    定義:提供一種方法順序訪問一個聚合對象中各個元素, 而又不需暴露其內部的表示。

  • 組合(Composite)
    場景:加上子菜單
    定義:將對象組合成樹形結構來表現「部分/總體」的層次結構。組合能讓客戶以一致的方式處理個別對象以及對象組合。

  • 狀態(State)
    場景:糖果機
    定義:容許對象在內部狀態改變時改變它的行爲,對象看起來好像修改了它的類。

  • 代理(Proxy)
    場景:RMI遠程代理
    定義:爲另外一個對象提供一個替身或佔位符以控制對這個對象的訪問。

相關文章
相關標籤/搜索