2016年4月7日 星期四

物件導向(2)單一職責原則

一個物件、類別,是否只擁有一個功能才是最好?哪些好處?


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

沒有留言:

張貼留言