其實不用設計模式並不是不能夠,可是用好設計模式能幫助咱們更好地解決實際問題。設計模式
設計模式每天都在用,但本身卻無感知。網絡
本系列文章,初衷是爲了記錄平常常常使用的設計模式,也給學習設計模式的同窗們提供參考和查閱。app
文章內容有本身的理解,也有參考網絡,若有侵犯,請告知刪除。框架
設計模式最重要的是解耦。學習
學習設計模式是如何總結經驗的,把經驗爲本身所用。spa
學設計模式也是鍛鍊將業務需求轉換技術實現的一種很是有效的方式。設計
咱們在學習設計模式以前,建議你們,必定要掌握好設計模式的幾大原則,《設計模式之禪》一書中開篇就是講的是設計原則;代理
因此在本篇文章中,在這裏先對設計原則作一個回顧和總結。server
設計原則 | 解釋 |
---|---|
開閉原則 | 對擴展開放,對修改關閉。 |
依賴倒置原則 | 經過抽象使各個類或者模塊不相互影響,實現鬆耦合。 |
單一職責原則 | 一個類、接口、方法只作一件事。 |
接口隔離原則 | 儘可能保證接口的純潔性,客戶端不該該依賴不須要的接口。 |
迪米特法則 | 又叫最少知道原則,一個類對其所依賴的類知道得越少越好。 |
里氏替換原則 | 子類能夠擴展父類的功能但不能改變父類原有的功能。 |
合成複用原則 | 儘可能使用對象組合、聚合,而不使用繼承關係達到代碼複用的目的。 |
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 |
須要特別聲明的是,設計模式歷來都不是單個設計模式獨立使用的。在實際應用中,一般是多個設計模式混合使用,你中有我,我中有你。