設計模式概覽

設計模式源於生活,從生活中去感悟,寫代碼的時候多思考思考。

設計模式的作用

設計模式是前輩們不斷實踐,總結出來的一套編程思路和方法,可以讓我們代碼的維護性、擴展性、複用性、靈活性更好。也就是說讓我們的代碼寫的更好。

面向對象設計模式的六大原則

  • 單一職能原則(SPR,Single Responsibility Principle)
    定義:對於一個類來說,應該僅有一個引起它變化的原因。
    理解:就是一個類應該包換和自身密切相關的數據和方法,儘量讓一個類高內聚低耦合。但在實際開發中,這一點很難做到,但是應該儘量做到。

  • 開放閉合原則(OCP,Open Close Principle)
    定義:軟件中的對象對擴展是開放的,對修改關閉。
    理解:代碼結構的精神領袖。如何讓代碼做到滿足OCP,就需要我們滿足設計原則,然後配合設計模式,讓我們的代碼儘可能的對擴展開發,對修改關閉。就是我們可以添加新類,但是對於原有的代碼儘量不要去修改。

  • 里氏替換原則(LSP,Liskov Substitution Principle)
    定義:所有使用基類的地方都可以透明的使用其子類的對象。
    理解:說白了就是繼承和多態的使用。

  • 接口隔離原則(ISP,Interface Segregation Principle)
    定義:客戶端不應該依賴它不需要的接口。另一種定義:類間的依賴關係應該建立在最小的接口上。
    理解:我們把接口做的儘量小一點,不要一個接口涵蓋很多模塊的功能。
    在實際開發中,對於一個功能我們一般是先定義一個接口,抽象出功能。對於這個接口我們最好讓他的作用範圍小一點,一個小功能我們對應一個接口,不要一個接口搞定所用的功能,否則後面會牽一髮而動全身。

  • 依賴倒置原則(DIP,Dependence Inversion Principle)
    定義:高層模塊不應該依賴於低層模塊,兩者都應該依賴於抽象;抽象不依賴於細節,細節應該依賴於抽象
    理解:面向接口編程或者是面向抽象編程

  • 迪米特原則(LOD,Law of Demeter)
    定義:一個對象應該對其他對象有最小的瞭解。
    理解:對於類而言當被調用者調用時,只暴露必須暴露的,隱藏實現細節,讓調用者對其知道的少。也就是調用者對於依賴的對象儘量少的知道實現細節,調用其具體的方法接口接口,減少依賴性。

設計模式分類

設計模式概覽

設計模式分爲三大類:
創建型模式:用於創建對象,不是通過new的方式來直接創建,隱藏對象具體的創建過程
結構型模式:關注類或對象的結構(組合、關聯…)
行爲型模式:關注類或對象間如何進行通信

參考:
《Android源碼設計模式解析和實戰》
《設計模式之禪》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章