單一職責原則(SRP)
就一個類而言,應該只有一個引起變化的原因
如果你能想到多余一個的動機去改變一個類,
那么這個類就具有多于一個的職責。
開放封閉原則(OCP)
對于擴展是開放的
對于更改是封閉的
Liskov替換原則(LSP)
子類型(subtype)必須能夠替換掉它們的基類型(base type)
依賴倒置原則(DIP)
高層模塊不應該依賴于底層模塊。二者都應該依賴于抽象
抽象不應該依賴于細節。細節應該依賴于抽象。
任何變量都不應該持有一個指向具體的指針或引用
任何類都不應該從具體類派生
任何方法都不應該覆寫他的任何基類中的已經實現了的方法
接口隔離原則(ISP)
不應該強迫客戶依賴于它們不用的方法