定義
每一個類都應該有一個單一的功能
一個類或者模塊應該有且只有一個改變的緣由編程
規範
定義類的方法
避免類之間耦合度過高設計
定義
只要有父類出現的地方,均可以用子類來替代繼承
規範
不要破壞繼承體系
增長子類的時候系統能夠正常執行接口
定義
高層模塊不該該依賴底層模塊,應該依賴其抽象
抽象不該該依賴細節,細節應該依賴抽象擴展
規範
面向接口編程
結合里氏替換原則使用軟件
定義
客戶端應該依賴最小的接口上
客戶端不該依賴它不須要的接口方法
規範
接口方法應該儘可能細化 (單一職責)客戶端
定義
最少知道原則
一個實體應當儘可能少的與其餘實體之間發生相互做用,使得系統功能模塊相對獨立。底層
規範
下降類之間的耦合度,提升模塊的相對獨立性
提升了類的可複用率和系統的擴展性系統
定義
對擴展開放,對修改關閉
規範 儘可能經過擴展軟件實體的行爲來實現變化,而不是經過修改已有的代碼來實現變化