學習設計模式的方法有很多。全面深入地學習,可以選擇經典設計模式書籍。或者通過簡短、清晰的教程快速瞭解設計模式。本文整理了23個設計模式的簡明教程,其中多篇以講故事的方式來學習設計模式。
建立型模式
一、Singleton,單例模式
設計模式是前輩們在多年開發工作中經驗的總結,可以提高程式碼的可重用性、可靠性和規範性,讓程式碼更容易理解,而單例模式是其中最重要、最簡單、最常用的設計模式之一,讓我們一起來揭開它的神祕面紗吧。
單例模式是Java中最常用的設計模式之一,它通過阻禁止外部例項化和修改,物件的方式來控制所建立的物件的數量。這個概念可以被廣泛地推廣到僅使用有一個現存的物件能更高效執行的系統,或者是限制在若干個物件例項化為特定的數目的高效系統環境系統中。
二、Abstract Factory,抽象工廠
抽象工廠模式是在工廠模式的基礎上增加的一層抽象概念。如果比較抽象工廠模式和工廠模式,我們不難發現前者只是增加了一層抽象的概念。抽象工廠是一個父類工廠,可以建立其它工廠類。故我們也叫它“工廠的工廠”。
三、Factory,工廠模式
工廠模式是根據不同的引數建立物件。例如用工廠建立人。 如果我們想要一個男孩,工廠就會為我們生產一個男孩;如果我們需要一個女孩,工廠則會為我們生產一個女孩。工廠會根據不同的引數,為我們提供不同的物品。
四、Builder,建造者模式
建造者模式的關鍵特性是它將一個建造過程分解成很多步驟,也可以說,每個產品的建造會遵循同樣的流程,不過流程內的每一個步驟都不盡相同。
五、Prototype,原型模式
原型模式被用在頻繁呼叫且極其相似的物件上,它會克隆物件並設定改變後的屬性,而且消耗的資源較少。
行為型模式
六、Iterator,迭代器模式
《Java Design Pattern: Iterator》
七、Observer,觀察者模式
簡而言之,觀察者模式=釋出者+註冊者。觀察者模式用來對GUI中的動作做偵聽。Swing GUI的例子就表明了動作偵聽是怎樣實現觀察者模式的。
八、Template Method,模板方法
模板方法模式是在日常開發中使用最為廣泛的設計模式之一。通過本視訊,你可以瞭解什麼是模板方法模式,如何用 Java 語言實現模板方法模式。@Arthur 將用簡單生動的例子帶你領略模板方法模式的真意,最後還將用實際的行業案例告訴你模板方法模式的強大功能。
九、Command,命令模式
《Java Design Pattern: Command》
十、State,狀態模式
十一、Strategy,策略模式
《Java Design Pattern: Strategy》
十二、Chain of Responsibility,職責鏈模式
《Java Design Pattern: Chain of Responsibility》
十三、Mediator,中介者模式
《Java Design Pattern: Mediator》
十四、Visitor,訪問者模式
《Java Design Pattern: Visitor》
十五、Interpreter,直譯器模式
《Java Design Pattern: Interpreter》
十六、Memento,備忘錄模式
《Java Design Pattern: Memento》
結構型模式
十七、Composite,組合模式
《Java Design Pattern: Composite》
十八、Facade,外觀模式
十九、Proxy,代理模式
《Java Design Pattern Story for Proxy – A Slutty Lady》
二十、Adapter,介面卡模式
所謂介面卡,就是連線“源”和“目標”的紐帶。本課程由生活中常見的例子入手,講述介面卡模式的組成和應用,為你的 Java 達人鍛造添磚加瓦
二十一、Decrator,裝飾模式
《Java Design Pattern: Decorator – Decorate your girlfriend》
二十二、Bridge,橋模式
簡單來講,橋接模式是一個兩層的抽象。橋接模式是用於“把抽象和實現分開,這樣它們就能獨立變化”。 橋接模式使用了封裝、聚合,可以用繼承將不同的功能拆分為不同的類。
二十三、Flyweight,享元模式