設計模式簡介:
設計模式(Design pattern)表明了最佳的實踐,一般被有經驗的面向對象的軟件開發人員所採用。設計模式是軟件開發人員在軟件開發過程當中面臨的通常問題的解決方案。這些解決方案是衆多軟件開發人員通過至關長的一段時間的試驗和錯誤總結出來的。java
設計模式提供了一個標準的術語系統,且具體到特定的情景。例如,單例設計模式意味着使用單個對象,這樣全部熟悉單例設計模式的開發人員都能使用單個對象,而且能夠經過這種方式告訴對方,程序使用的是單例模式。編程
設計模式已經經歷了很長一段時間的發展,它們提供了軟件開發過程當中面臨的通常問題的最佳解決方案。學習這些模式有助於經驗不足的開發人員經過一種簡單快捷的方式來學習軟件設計。設計模式
附上思惟導圖:學習
1.java設計模式可分爲三大類:spa
(1)建立型:該模式適用於在建立對象的同時隱藏其建立邏輯的方式,不須要經過實例化new 出來一個對象,這使得程序在判斷對於某個實例須要建立那些對象時更加靈活。設計
(2)結構型:注重於類和對象的組合,繼承的概念主要用於接口的組合以及定義組合的對象得到新功能的方式。代理
(3)行爲型:該模式主要關注的是對象之間的通訊。對象
2.java設計模式面向對象七大原則:blog
(1)開閉原則:(對擴展開放,對修改關閉),在程序須要進行拓展,實現新功能的時候,不能去修改原有的代碼體系,只能經過接口,抽象類和繼承實現的方式對原程序進行功能拓展。這樣使得程序易於維護和升級,可拓展性良好。繼承
(2)里氏替換原則:子類可以出如今任何基類出現的地方,是對開閉原則的深層次補充,也就是經過抽象類與其實現類的繼承關係來對開閉原則細化,經過子類對基類的繼承來實現抽象類的具體實現步驟。簡而言之,要想實現一個新的功能,只須要新建一個子類而且該子類可以實現該功能。
(3)依賴倒置原則:針對接口編程,依賴於抽象而不依賴於具體。
(4)接口分離原則:使用多個接口而不使用單個接口,下降類之間的耦合度,也就是說設計模式的原則大體爲強調下降依賴,下降耦合。
(5)迪米特原則(最少了解原則):一個實體類與其餘實體類之間要有儘可能少的關係,使得功能模塊獨立化。
(6)單一職責原則:每個類只能有一個職責,專一於作某一件事情
(7)合成複用原則:一個類中有另外一個類的對象,儘可能使用合成/聚合的方式達到類的複用,儘可能少用繼承。
3.各種型設計模式細化:
建立型:工廠模式,抽象工廠模式,原型模式,單例模式,建造者模式
結構型:適配器模式,橋接模式,組合模式,外觀模式,享元模式,代理模式,裝飾器模式
行爲型:責任鏈模式,命令模式,解釋器模式,迭代器模式,中介者模式,備忘錄模式,觀察者模式,訪問者模式,狀態模式,模塊方法模式,策略模式