簡潔版:
囉嗦版:
開閉原則:一個軟件中的實體如 類,模塊和函數應對修改關閉,對擴展開放,用抽象構建框架,用實現擴展細節。
優點:提高軟件的可複用性以及可維護性。
依賴倒置原則:高層模塊不應依賴低層模塊,兩者都應依賴於其抽象
針對接口編程,而不是針對細節編程。有大局觀,細節依賴於抽象,抽象不能依賴於細節
優點:減少類之間的耦合性,提高系統的穩定性,提高代碼可讀性,可維護性,可降低修改程序帶來的風險
單一職責原則:一個類只負責某一職責,一個方法只負責這個類負責的職責的某一項具體職責
優點:降低程序的複雜性,提高類的可讀性,提高系統的可維護性,降低修改代碼帶來的風險
接口隔離原則:儘量將接口細化,但也要適度,用多個專門的接口,而不是一個總的接口,並且避免實現不必要的接口.
接口中的方法儘可能少
優點:降低程序的複雜性,提高類的可讀性,提高系統的可維護性,降低修改代碼帶來的風險
迪米特法則:一個對象應該對其它對象保持最少的瞭解,又叫最少知道原則。強調只和朋友交流,不和陌生人說話
朋友是指:成員變量,方法參數,方法返回值中包含的類
優點:降低類之間的耦合
合成複用原則:能不用繼承就不用繼承,儘量使用對象組合,聚合方式來實現軟件的複用的目的
優點:降低耦合,提高系統的靈活度,降低類與類之間的耦合度,使一個類的修改對其它類影響更小
里氏替換原則:子類可以擴展父類的功能但是不能修改父類原有的功能
1.子類可實現父類的抽象方法但是不能覆蓋父類的非抽象方法,
2.子類可增加自己特有的方法