發佈說明
其實不用設計模式並非不可以,但是用好設計模式能幫助我們更好地解決實際問題。
設計模式天天都在用,但自己卻無感知。
本系列文章,初衷是爲了記錄日常經常使用的設計模式,也給學習設計模式的同學們提供參考和查閱。
文章內容有自己的理解,也有參考網絡,如有侵犯,請告知刪除。
學習設計模式的重要性
設計模式最重要的是解耦。
學習設計模式是如何總結經驗的,把經驗爲自己所用。
學設計模式也是鍛鍊將業務需求轉換技術實現的一種非常有效的方式。
設計模式的基石
我們在學習設計模式之前,建議大家,一定要掌握好設計模式的幾大原則,《設計模式之禪》一書中開篇就是講的是設計原則;
所以在本篇文章中,在這裏先對設計原則做一個回顧和總結。
設計原則 | 解釋 |
---|---|
開閉原則 | 對擴展開放,對修改關閉。 |
依賴倒置原則 | 通過抽象使各個類或者模塊不相互影響,實現鬆耦合。 |
單一職責原則 | 一個類、接口、方法只做一件事。 |
接口隔離原則 | 儘量保證接口的純潔性,客戶端不應該依賴不需要的接口。 |
迪米特法則 | 又叫最少知道原則,一個類對其所依賴的類知道得越少越好。 |
里氏替換原則 | 子類可以擴展父類的功能但不能改變父類原有的功能。 |
合成複用原則 | 儘量使用對象組合、聚合,而不使用繼承關係達到代碼複用的目的。 |
經典框架都在用設計模式解決問題
Spring 就是一個把設計模式用得淋漓盡致的經典框架,其實從類的命名就能看出來,我
來一一列舉:
設計模式名稱 | 舉例 |
---|---|
工廠模式 | BeanFactory |
裝飾器模式 | BeanWrapper |
代理模式 | AopProxy |
委派模式 | DispatcherServlet |
策略模式 | HandlerMapping |
適配器模式 | HandlerAdapter |
模板模式 | JdbcTemplate |
觀察者模式 | ContextLoaderListener |
設計模式分類
類型 | 名稱 | 英文 |
---|---|---|
創建型模式 | 工廠模式 | Factory Patterns |
單例模式 | Singleton Pattern | |
原型模式 | Prototype Pattern | |
結構型模式 | 適配器模式 | Prototype Pattern |
裝飾器模式 | Decorator Pattern | |
代理模式 | Proxy Pattern | |
行爲型模式 | 策略模式 | Strategy Pattern |
模板模式 | Template Pattern | |
委派模式 | Delegate Pattern | |
觀察者模式 | Observer Pattern |
注意
需要特別聲明的是,設計模式從來都不是單個設計模式獨立使用的。在實際應用中,通常是多個設計模式混合使用,你中有我,我中有你。