單一職責原則 SRP

2021-06-01 13:22:19 字數 850 閱讀 5855

一、srp簡介(srp--single-responsibility principle):

就乙個類而言,應該只專注於做一件事和僅有乙個引起它變化的原因。

所謂職責,我們可以理解他為功能,就是設計的這個類功能應該只有乙個,而不是兩個或更多。也可以理解為引用變化的原因,當你發現有兩個變化會要求我們修改這個類,那麼你就要考慮撤分這個類了。因為職責是變化的乙個軸線,當需求變化時,該變化會反映類的職責的變化。

「就像乙個人身兼數職,而這些事情相互關聯不大,,甚至有衝突,那他就無法很好的解決這些職責,應該分到不同的人身上去做才對。」  

二、舉例說明:

違反srp原則**:

modem介面明顯具有兩個職責:連線管理和資料通訊;

inte***ce modem

如果應用程式變化影響連線函式,那麼就需要重構:

inte***ce datachannel

inte***ce connection

三、srp優點:

消除耦合,減小因需求變化引起**僵化性臭味

四、使用srp注意點:

1、乙個合理的類,應該僅有乙個引起它變化的原因,即單一職責;

2、在沒有變化徵兆的情況下應用srp或其他原則是不明智的;

3、在需求實際發生變化時就應該應用srp等原則來重構**;

4、使用測試驅動開發會迫使我們在設計出現臭味之前分離不合理**;

5、如果測試不能迫使職責分離,僵化性和脆弱性的臭味會變得很強烈,那就應該用facade或proxy模式對**重構;

單一職責原則SRP

1 乙個類,只有乙個引起它變化的原因。應該只有乙個職責。每乙個職責都是變化的乙個軸線,如果乙個類有乙個以上的職責,這些職責就耦合在了一起。這會導致脆弱的設計。當乙個職責發生變化時,可能會影響其它的職責。另外,多個職責耦合在一起,會影響復用性。例如 要實現邏輯和介面的分離。2 什麼是職責?srp中,把...

單一職責原則 SRP

單一職責原則 single responsibility principle srp 基本概念 不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。優點 問題由來 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p...

單一職責原則 SRP

學習設計原則 1.solid,kiss,yangni,dry,lod 一.solidlid原則不是乙個單一的原則 包含5個設計原則 單一職責原則,開閉原則,裡式替換原則,介面隔離原則,依賴翻轉原則.二.單一職責原則的描述 1.單一職責原則 srp 乙個類只負責完成乙個職責或者功能.不要設計大而全的類...