面向對象之旅-設計與設計原則
好的面向對象的開發的目標是:代碼易複用、可維護性強。
面向對象的設計方法:
1, 信息專家(Information Expert)
如果某個類擁有完成某個職責所需要的信息,那麼,這個職責就應該分配給這個類。
2, 創造者(Creator)
如果下列條件被滿足,則就由類A來創建類B:
a, A是B的聚合
b, A是B的容器
c, A持有初始化B的信息
d, A記錄B的實例
e, A頻繁地使用B
3, 低藕合(Low coupling)
下列情況會使A和B之間產生耦合:
a, A是B的屬性
b, A調用B的實例方法
c, A的方法中引用了B,例如B是A方法的返回值或參數
d, A是B的子類,或者A實現了B
關於低耦合,還有一些基本的原則
a, Don’t talk to strangers,不需要進行通信的兩個對象之間,就不要連接
b,如果A和B已經有了連接,分配A的職責給B不合適的話(違反信息專家模式),那麼就把B的指責分配給A
c,兩個不同模塊的內部類之間不能直接連接
4, 高內聚(High cohesion)
5, 控制器(Controller)
6, 多態(Polymorphism)
7, 純虛構(Pure Fabrication)
8, 間接(Indirection)
9, 受保護的變化(Protected Variations)