【設計模式】6大原則

本系列博客主要參考《大話設計模式》和《設計模式:可複用面向對象軟件的基礎》兩本書,也參考了其他博友的博客,如果理解有偏差希望大家指出。

1、單一職責原則(SRP)

就一個類而言,應該僅有一個引起它變化的原因

例如:如果遊戲邏輯與界面寫在一起則引起變化的原因有兩個

2、開放-封閉原則(OCP)

是說軟件實體(類、模塊、函數等等)應該可以擴展,但是不可修改。

兩個特徵:一是對於擴展是開放的,二是更改是封閉的(簡單工廠模式不符合這個原則,工廠方法符合)

開發封閉原則是面向對象設計的核心所在。

3、依賴倒轉原則

(1)高層模塊不應該依賴底層模塊。兩個都應該依賴抽象。

(2)抽象不應該依賴細節。細節應該依賴抽象。

爲何叫倒轉?面向過程的開發時,爲了使得常用代碼可以複用,一般都會把這些常用代碼寫成許許多多庫函數,在做新項目的時候去調用這些底層的函數就可以了。比如訪問數據庫的代碼寫成函數。這就是高層模塊依賴底層模塊。

而實質上在做新項目的時候會發現業務邏輯的高層模塊都是一樣的,但客戶希望使用不同的數據庫或存儲信息方式,這時高層模塊與底層的訪問數據庫綁定在一起,沒有辦法複用這些高層模塊。

4、里氏代換原則(LSP)

子類型必須能夠替換掉它們的父類型。正是由於子類型的可替換性才使得使用父類類型的模塊在無需修改的情況下就可以擴展。

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