-
單一職責原則
鎖定
單一職責原則(SRP:Single responsibility principle)又稱單一功能原則,面向對象五個基本原則(SOLID)之一。它規定一個類應該只有一個發生變化的原因。該原則由羅伯特·C·馬丁(Robert C. Martin)於《敏捷軟件開發:原則、模式與實踐》一書中給出的。馬丁表示此原則是基於湯姆·狄馬克(Tom DeMarco)和Meilir Page-Jones的著作中的內聚性原則發展出的。
[1]
所謂職責是指類變化的原因。如果一個類有多於一個的動機被改變,那麼這個類就具有多於一個的職責。而單一職責原則就是指一個類或者模塊應該有且只有一個改變的原因。
- 中文名
- 單一職責原則
- 外文名
- Single responsibility principle
- 縮 寫
- SRP
- 提出者
- 羅伯特·C·馬丁(Robert C. Martin)
- 出 處
- 《敏捷軟件開發:原則、模式和實踐》
- 別 名
- 單一功能原則
單一職責原則定義
就一個類而言,應該僅有一個引起它變化的原因。應該只有一個職責。
[1]
每一個職責都是變化的一個軸線,如果一個類有一個以上的職責,這些職責就耦合在了一起。這會導致脆弱的設計。當一個職責發生變化時,可能會影響其它的職責。另外,多個職責耦合在一起,會影響複用性。例如:要實現邏輯和界面的分離。
單一職責原則原理
如果一個類承擔的職責過多,就等於把這些職責耦合在一起了。一個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當發生變化時,設計會遭受到意想不到的破壞。而如果想要避免這種現象的發生,就要儘可能的遵守單一職責原則。此原則的核心就是解耦和增強內聚性。
單一職責原則問題由來
之所以會出現單一職責原則就是因為在軟件設計時會出現以下類似場景:
T負責兩個不同的職責:職責P1,職責P2。當由於職責P1需求發生改變而需要修改類T時,有可能會導致原本運行正常的職責P2功能發生故障。也就是説職責P1和P2被耦合在了一起。
單一職責原則產生原因
職責擴散:因為某種原因,某一職責被分化為顆粒度更細的多個職責了。
單一職責原則解決辦法
遵守單一職責原則,將不同的職責封裝到不同的類或模塊中。
單一職責原則相關知識
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:10次歷史版本
- 最近更新: guazi19840714