含義:就是對一個類而言,應(yīng)該僅有一個引起變化的原因呢燥,也就是說 一個類應(yīng)該只負(fù)責(zé)一件事情
如果一個類負(fù)責(zé)了方法M1,方法M2兩個不同的事情崭添,當(dāng)M1方法發(fā)生變化的時候,我們需要修改這個類的M1方法叛氨,但是這個時候就有可能導(dǎo)致M2方法不能工作呼渣。也就是說職責(zé)M1和M2被耦合在了一起。
這個不是我們期待的力试,但是由于這種設(shè)計卻很有可能發(fā)生徙邻。所以這個時候,我們需要把M1方法畸裳,M2方法單獨分離成兩個類缰犁。讓每個類只專心處理自己的方法。
單一職責(zé)原則的好處如下:
1.可以降低類的復(fù)雜度怖糊,一個類只負(fù)責(zé)一項職責(zé)帅容,這樣邏輯也簡單很多
2.提高類的可讀性,和系統(tǒng)的維護(hù)性伍伤,因為不會有其他奇怪的方法來干擾我們理解這個類的含義
3.當(dāng)發(fā)生變化的時候并徘,能將變化的影響降到最小,因為只會在這個類中做出修改扰魂。
??單一職責(zé)原則是實現(xiàn)高內(nèi)聚麦乞、低耦合的指導(dǎo)方針,它是最簡單但又最難運用的原則
??類的多重職責(zé)要進(jìn)行分離劝评。
??兩個完全不一樣的功能就不應(yīng)該放在一個類中姐直。一個類中應(yīng)該是一組相關(guān)性很高的函數(shù)、數(shù)據(jù)的封裝
單一職責(zé)原則告訴我們:一個類不能太“累”蒋畜!在軟件系統(tǒng)中声畏,一個類(大到模塊,小到方法)承擔(dān)的職責(zé)越多姻成,它被復(fù)用的可能性就越小插龄,而且一個類承擔(dān)的職責(zé)過多,就相當(dāng)于將這些職責(zé)耦合在一起科展,當(dāng)其中一個職責(zé)變化時均牢,可能會影響其他職責(zé)的運作,因此要將這些職責(zé)進(jìn)行分離才睹,將不同的職責(zé)封裝在不同的類中膨处,即將不同的變化原因封裝在不同的類中见秤,如果多個職責(zé)總是同時發(fā)生改變則可將它們封裝在同一類中。