面向對象的設計原則(1):SRP



SRP
 就一個類而言,應該僅有一個引起它變化的原因
 什麼是職責?我們把職責定義爲“變化的原因”(a reason for change),如果你能想到多於一個的動機去改變

 一個類,那麼這個類就具有多於一個的職責
 如果一個類的職責過多,就等於把這些職責耦合在一起,一個職責的變化可能會抑止這個類完成其他職責的能力。例子:
 interface Modem 
 {
  public void dial(String pno);
  public void hangup();
  public void send(char c);
  public void recv();
 }
 該接口中有兩個職責,一個是連接管理,一個是數據通信,這兩個職責是否被分開,依賴於應用程序的變化方式,如果application的變化會影響連接,那麼這個接口就有僵化的臭味,需要分離他們。反之,如果應用程序的變化總是導致兩個職責同時變化,就不必分離他們。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章