每個軟體元件都應該只有一個且一個職責
軟體元件可以是類別、方法或模組
例如,瑞士軍刀是一種多用途工具,違反了軟體開發的單一責任原則,相反,刀是遵循單一責任的一個很好的例子(因為它只能用於切割,而瑞士軍刀可以用於切割、打開罐頭、作為萬能鑰匙、剪刀等)
由於無論是在現實世界還是在軟體開發中,變化都是不斷變化的,單一職責原則的定義也會隨之變化
每個軟體元件都應該有一個且僅有一個更改的理由
下面的 Employee 類別會改變的原因有以下三個
由於SRP(單一職責原則)建議在類別中只有一個更改原因,因此我們必須在Employee類別中進行一些修改
SRP 的變更
現在,Employee 類別中發生變化的原因只有一個
變更原因:員工屬性變更
此外,EmployeeRepository 類別中發生變更的原因只有一個
變更原因:資料庫變更
最後,TaxCalculator 類別中發生變化的原因只有一個
變更原因:稅金計算方式變更
注意:所有 3 個類別現在都遵循單一職責原則,因此遵循這兩個定義
創建類別或任何軟體元件時請記住:以高內聚和鬆散耦合為目標
每個軟體元件應該只有一個和一個職責和
每個軟體元件都應該有且只有一個更改的理由
以上是單一責任原則的詳細內容。更多資訊請關注PHP中文網其他相關文章!