面向對象的可復用設計( Object Oriented Design / OOD)
1. 開閉原則 (Open Closed Principle)
對擴展開放,對修改關閉
2. 里氏代換原則(LSP)
1.可以使用基類的地方,其子類必然也能使用
2.并且原功能不會受到任何影響
-- 經典案例, 正方形是不是長方形的子類?
3.依賴倒轉原則(DIP)
依賴抽象,不要依賴具體,面向接口編程
傳統過程性設計辦法傾向于高層依賴低層,抽象依賴具體
依賴倒轉原則,就是把錯誤的依賴關系倒轉過來
4.接口隔離原則(ISP)
使用多個專門的接口,比使用單一的接口要好
5.合成、聚合復用原則(CARP)
盡量使用合成,聚合,盡量不使用繼承
6.迪米特法則
不跟陌生人說話……
- 這是“某人” 的朋友圈, 他與“朋友” 之間是朋友關系
這是“朋友” 與 “陌生人” 組成的朋友圈
迪米特法則建議,“某人” 與 “陌生人” 之間不要進行直接通話,而是通過“朋友”去調用“陌生人”的方法,對于“某人”來說,“陌生人”是不存在的。
怎么樣才算“朋友”? 也只有患難見真情。
- 當前對象本身
- 以參量形式傳入到當前對象方法中的對象
- 當前對象的實例變量引用的對象
- 當前對象實例是集合,則集合中的對象是朋友
- 當前對象創建的對象
應該是有依賴關系的,就算是“朋友”吧