設計模式解析

/**

* 作者:wanglei 

* 郵箱:229846388@qq.com

* Explain 設計模式解析

*/

public classExplain {

/**

* 定義:

* 1.某類特定問題的代碼設計解決方案

* 2.是一套代碼設計的經驗總結

* 作用:

* 1.提高代碼復用率,降低開發成本和周期

* 2.提高代碼可維護性、可拓展性

* 3.使代碼更加優雅

* 4.讓代碼更容易被他人理解

* 設計模式的設計原則:

* 1.單一職責原則:一個類=只有一個引起它變化的原因。

* 說明:如果一個類承擔的職責過多,即耦合性太高=一個職責的變化可能會影響到其他的職責

* 2.開放封閉原則:一個實體(類、函數、模塊等)應該對外擴展開放,對內修改關閉

* 說明:1.即每次發生變化時,要通過添加新的代碼來增強現有類型的行為,而不是修改原有的代碼。2.符合開放封閉原則的最好方式是提供一個固有的接口,然后讓所有可能發生變化的類實現該接口,讓固定的接口與相關對象進行交互。

* 3.里氏代替原則:子類必須替換掉它們的父類型。

* 說明:1.在軟件開發過程中,子類替換父類后,程序的行為是一樣的。2.只有當子類替換掉父類后軟件的功能不受影響時,父類才能真正地被復用,而子類也可以在父類的基礎上添加新的行為。

* 4.依賴倒置原則:細節應該依賴于抽象,而抽象不應該依賴于細節。

* 說明:所謂的的 “面向接口編程,而不是面向實現編程”。這樣可以降低客戶與具體實現的耦合。

* 5.接口隔離原則:使用多個專門功能的接口,而不是使用單一的總接口。

* 說明:不要讓一個單一的接口承擔過多的職責,而應把每個職責分離到多個專門的接口中,進行接口分離。

* 6.合成復用原則:在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分。

* 說明:新對象通過向這些對象的委派達到復用已用功能的目的。簡單地說,就是要盡量使用合成/聚合,盡量不要使用繼承。

* 7.最少知識原則(迪米特法則):一個模塊或對象應盡量少的與其他實體之間發生相互作用,使得系統功能模塊相對獨立,這樣當一個模塊修改時,影響的模塊就會越少,擴展起來更加容易。

* 說明:1.關于迪米特法則的其他描述:只與你直接的朋友們通信;不要跟“陌生人”說話。2.外觀模式(Facade Pattern)和中介者模式(Mediator Pattern)就使用了迪米特法則。

*/

/**

* 設計模式分類:共3大類-23種設計模式

*

* 第一類:創建類:

*          本質:創建對象的模式:對類的實例化進行抽象

* 特點:

*          1.封裝了類的具體信息

*          2.隱藏了類的實例化過程

* 5種設計模式:

*          1.單例模式(Singleton)

*          2.工廠方法模式(Factory Method)

*          3.抽象工廠模式(Abstract Factory)

*          4.建造者模式(Builder)

*          5.原始模式(Prototype)

*

* 第二類:結構類:

*          本質:處理類或對象的組合

* 倆種類型:

*          1.類結構型:采用繼承機制來組合接口實現

*          2.對象結構型:組合對象的方式來實現新功能

* 7種設計模式:

*          1.適配器模式(Adapter)

*          2.橋梁模式(Bridge)

*          3.裝飾模式(Decorator)

*          4.門面模式(Facade)

*          5.合成模式(Composlte)

*          6.享元模式(Flyweight)

*          7.代理模式(Proxy)

*

* 第三類:行為類:

*          本質:對在不同的對象之間劃分責任和算法的抽象化

* 倆種類型:

*          1.類的行為模式:使用繼承方式在幾個類之間分配行為

*          2.對象的行為模式:使用對象聚合的方式來分配行為

* 11種設計模式:

*          1.模板方法模式(Template Method)

*          2.命令模式(Command)

*          3.迭代器模式(Iterator)

*          4.觀察者模式(Observer)

*          5.調停者模式(Meditor)

*          6.狀態模式(State)

*          7.策略模式(Strategy)

*          8.責任鏈模式(Chain Of Responsibility)

*          9.訪問者模式(Visitor)

*          10.備忘錄模式(Memento)

*          11.解釋器模式(Interpreter)

*/

}
image.png

例子地址:
https://github.com/WangLeiGit/Pattern.git

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 什么是材料 在親朋聚會,與人閑談時,總會有人問我,什么是材料。其實這個問題從我一開始涉足材料領域至今仍一直困擾著我...
    山頂洞人001閱讀 812評論 1 4
  • 我很驚奇 在這深冬的季節里 沉睡的夜 居然有霧飄開去…… 無言 我用冰涼的臉頰 感受它熾熱的隱秘 潮濕了的,聚集了...
    劉言V飛語閱讀 555評論 2 21
  • 1、 你是否也是這樣: 訂閱了許多公眾號,購入了許多線上課程。 感覺自己每天都在學習,連上班的路上都帶著耳機聽音頻...
    逯曉風閱讀 328評論 3 5
  • 乘馬崗是一個位于大別山區的小鎮,一條公路從南向北貫穿,開膛剖肚似的。一些本地人在鎮政府前的馬路兩邊賣起百貨,殺豬賣...
    小路在路上閱讀 206評論 0 2