1. 程式人生 > >面向對象設計原則 單一職責原則(Single responsibility principle)

面向對象設計原則 單一職責原則(Single responsibility principle)

敏捷軟件開發 實現邏輯 導致 五個 單獨 無法 dot 單一職責原則 其它

單一職責原則(SRP:Single responsibility principle)又稱單一功能原則,面向對象五個基本原則(SOLID)之一。

它規定一個類應該只有一個發生變化的原因。

該原則由羅伯特·C·馬丁(Robert C. Martin)於《敏捷軟件開發:原則、模式和實踐》一書中給出的。

所謂職責是指類變化的原因。如果一個類有多於一個的動機被改變,那麽這個類就具有多於一個的職責。

而單一職責原則就是指一個類或者模塊應該有且只有一個改變的原因。

一個類,只有一個引起它變化的原因。應該只有一個職責

。每一個職責都是變化的一個軸線,如果一個類有一個以上的職責,這些職責就耦合在了一起。

這會導致脆弱的設計。當一個職責發生變化時,可能會影響其它的職責。另外,多個職責耦合在一起,會影響復用性。例如:要實現邏輯和界面的分離。

為什麽將不同的職責分離到單獨的類中是如此的重要呢?

因為每一個職責都是一個變化的中心。當需求變化時,這個變化將通過更改職責相關的類來體現。

如果一個類擁有多於一個的職責,則這些職責就耦合到在了一起,那麽就會有多於一個原因來導致這個類的變化。

對於某一職責的更改可能會損害類滿足其他耦合職責的能力。這樣職責的耦合會導致設計的脆弱,以至於當職責發生更改時產生無法預期的破壞。

面向對象設計原則 單一職責原則(Single responsibility principle)