一個物件、類別,是否只擁有一個功能才是最好?哪些好處?
- 不同的功能用不同的類別加以組合,如此一來靈活性自然高。
- 再利用時不會有多餘的程式碼佔資源。
- 就測試而言,單一功能是否意味著測試上「比較」容易,品質也「比較」好?
- 維護容易是明顯的。
缺點呢?
- 不同功能之間的協調會增加許多成本。但這成本的增加對於系統的穩定度、可維護、可擴充而言,幾乎是可以忽略的事。
- 《大話設計模式》一書中提到「抑制完成其他職責的可能」,令人費解。完成其他職責,大可用其他物件完成,與當前物件的內部藕合無關才對。
- 當變化發生時,修改類別內部的功能如果會導致脆弱的結構,那也是內部設計未考量物件導向的原則。但若考量物件導向原則,是不是意味著最好拆開呢?
- 複合數種類別而成的新類別,再利用的可能性本來就低。除非不在乎多餘的資源。
討論到此應該差不多了!
沒有留言:
張貼留言