策略(Strategy)
場景:鴨子行爲
定義:定義了算法簇,分別封裝起來,讓他們之間能夠互相替換,此模式讓算法的變化獨立於使用算法的客戶。
算法
觀察者(Observer)
場景:氣象監測
定義:定義了對象之間的一對多依賴,這樣一來,當一個對象改變狀態時,它的全部依賴者都會收到通知並自動更新。
編程
裝飾者(Decorator)
場景:咖啡飲料
定義:動態地將責任附加到對象上。若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。
設計
工廠方法(Factory Method)
場景:披薩店
定義:定義了一個建立對象的接口,但由子類決定要實例化的類是哪個。工廠方法讓類把實例化推遲到子類。
3d
抽象工廠(Abstract Factory)
場景:披薩原料
定義:提供一個接口,用於建立相關或依賴對象的家族,而不須要明確指定具體類。
代理
單件模式(Singleton)
場景:巧克力鍋爐
定義:確保一個類只有一個實例,並提供一個全局訪問點。
日誌
命令(Command)
場景:遙控器
定義:將「請求」封裝成對象,以便使用請求、隊列或者日誌來參數化其餘對象。命令模式也支持可撤銷的操做。
server
適配器(Adapter)
場景:電源適配器
定義:將一個類的接口,轉換成客戶指望的另外一個接口。適配器讓本來接口不兼容的類能夠合做無間。
對象
外觀(Facade)
場景:家庭影院
定義:提供了一個統一的接口,用來訪問子系統中的一羣接口。外觀定義了一個高層接口,使子系統更容易使用。
blog
模板方法(Template Method)
場景:茶和咖啡
定義:在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。模板方法能夠使得子類在不改變算法結構的狀況下,從新定義算法中的某些步驟。
繼承
迭代器(Iterator)
場景:遍歷菜單
定義:提供一種方法順序訪問一個聚合對象中各個元素, 而又不需暴露其內部的表示。
組合(Composite)
場景:加上子菜單
定義:將對象組合成樹形結構來表現「部分/總體」的層次結構。組合能讓客戶以一致的方式處理個別對象以及對象組合。
狀態(State)
場景:糖果機
定義:容許對象在內部狀態改變時改變它的行爲,對象看起來好像修改了它的類。
代理(Proxy)
場景:RMI遠程代理
定義:爲另外一個對象提供一個替身或佔位符以控制對這個對象的訪問。