《敏捷軟體開發 原則、模式與實踐(c#版)》
第8章 srp:單一職責原則
「srp:乙個類應該只有乙個發生變化的原因。」(p89)
「在srp中,我們把職責定義為變化的原因。如果你能夠想到多於乙個的動機去改變乙個類,那麼這個類就具有多於乙個的職責。」 (p90)
「如果乙個類承擔的職責過多,就等於把這些職責耦合在了一起。乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。」(p90)
說明:對於乙個類是否一定要採取srp原則,書中也給出了明確的說明。
「另一方面,如果應用程式的變化方式總是導致這兩個職責同時變化,那麼就不必分離它們。實際上,分離它們就會具有不必要的複雜性的臭味。」 (p91)
「在此還有乙個推論。僅當發生變化時,變化的軸線才具有實際意義。如果沒有徵兆,那麼應用srp或者任何其他原則都是不明智的。」 (p91)
說明:上面的「兩個職責」,不是說乙個類只能具有2個職責,因為這句話是有上下文的,因為在書中這段話之前,有乙個範例,而該範例就列舉了乙個類有2個職責的情況。
「srp是所有原則中最簡單的原則之一,也是最難正確運用的原則之一。我們會自然地把職責結合在一起。軟體設計真正要做的許多任務作,就是發現職責並把那些職責相互分離。事實上,我們將要論述的其餘原則都會以這樣或那樣的方式回到這個問題上。」(p92)
單一職責原則 SRP
一 srp簡介 srp single responsibility principle 就乙個類而言,應該只專注於做一件事和僅有乙個引起它變化的原因。所謂職責,我們可以理解他為功能,就是設計的這個類功能應該只有乙個,而不是兩個或更多。也可以理解為引用變化的原因,當你發現有兩個變化會要求我們修改這個類...
單一職責原則SRP
1 乙個類,只有乙個引起它變化的原因。應該只有乙個職責。每乙個職責都是變化的乙個軸線,如果乙個類有乙個以上的職責,這些職責就耦合在了一起。這會導致脆弱的設計。當乙個職責發生變化時,可能會影響其它的職責。另外,多個職責耦合在一起,會影響復用性。例如 要實現邏輯和介面的分離。2 什麼是職責?srp中,把...
單一職責原則 SRP
單一職責原則 single responsibility principle srp 基本概念 不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。優點 問題由來 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p...