面向對象設計原則

1、單一職責原則:一個對象應該只包含單一的職責,并且該職責被完整地封裝在一個類中 。單一職責原則是實現高內聚、低耦合的指導方針,是最簡單卻最難運用的原則,需要設計人員發現類的不同職責并將其分離 。
2、開閉原則:軟件實體應當對擴展開放,對修改關閉 。指軟件實體應盡量在不修改原有代碼的情況下進行擴展 。
3、里氏替換原則:所有引用基類的地方必須能透明地使用其子類的對象 。里氏替換原則表明,在軟件中將一個基類對象替換成它的子類對象,程序將不會產生任何錯誤和異常,反過來則不成立 。在運用里氏替換原則時,應該將父類設計為抽象類或者接口,讓子類繼承父類或實現父類接口,并實現在父類中聲明的方法 。
【面向對象設計原則】4、依賴倒轉原則:高層模塊不應該依賴底層模塊,它們都應該依賴抽象 。抽象不應該依賴于細節,細節應該依賴于抽象 。依賴倒轉原則要求:要針對接口編程 , 不要針對實現編程 。
5、接口隔離原則:客戶端不應該依賴那些它不需要的接口 。在使用接口隔離原則的時候,需要注意控制接口的粒度,接口不能太小,如果太小會導致系統中接口泛濫 , 不利于維護;接口也不能太大,太大的接口將違背接口隔離原則,靈活性較差,使用起來不方便 。
6、合成復用原則:優先使用對象組合 , 而不是繼承來達到復用的目的 。一般而言 , 如果兩個類之間是Has-A關系應使用組合或聚合,如果是Is-A關系可使用繼承 。
7、迪米特法則-又稱最少知識原則:每一個軟件單位對其他的單位都只有最少的知識,而且局限于那些與本單位密切相關的軟件單位 。