單一職責(zé)原則是最簡(jiǎn)單的面向?qū)ο笤O(shè)計(jì)原則辨绊,它用于控制類的粒度大小。單一職責(zé)原則定義如下:
單一職責(zé)原則(Single Responsibility Principle, SRP):一個(gè)類只負(fù)責(zé)一個(gè)功能領(lǐng)域中的相應(yīng)職責(zé)门坷,或者可以定義為:就一個(gè)類而言,應(yīng)該只有一個(gè)引起它變化的原因冻晤。
單一職責(zé)原則告訴我們:一個(gè)類不能太“累”绸吸!在軟件系統(tǒng)中,一個(gè)類(大到模塊锦茁,小到方法)承擔(dān)的職責(zé)越多,它被復(fù)用的可能性就越小码俩,而且一個(gè)類承擔(dān)的職責(zé)過多,就相當(dāng)于將這些職責(zé)耦合在一起笨篷,當(dāng)其中一個(gè)職責(zé)變化時(shí)瓣履,可能會(huì)影響其他職責(zé)的運(yùn)作,因此要將這些職責(zé)進(jìn)行分離拂苹,將不同的職責(zé)封裝在不同的類中痰洒,即將不同的變化原因封裝在不同的類中浴韭,如果多個(gè)職責(zé)總是同時(shí)發(fā)生改變則可將它們封裝在同一類中。
單一職責(zé)原則是實(shí)現(xiàn)高內(nèi)聚泉粉、低耦合的指導(dǎo)方針榴芳,它是最簡(jiǎn)單但又最難運(yùn)用的原則嗡靡,需要設(shè)計(jì)人員發(fā)現(xiàn)類的不同職責(zé)并將其分離,而發(fā)現(xiàn)類的多重職責(zé)需要設(shè)計(jì)人員具有較強(qiáng)的分析設(shè)計(jì)能力和相關(guān)實(shí)踐經(jīng)驗(yàn)讨彼。
難點(diǎn):
職責(zé)的劃分柿祈。
在不同情景和生產(chǎn)環(huán)境下我們對(duì)職責(zé)的細(xì)化是不同的(職責(zé)單一的相對(duì)性)
單一職責(zé)原則提出的是一個(gè)評(píng)價(jià)接口是否優(yōu)良的標(biāo)準(zhǔn),但是職責(zé)和變化原因是不可度量的蜜自,因項(xiàng)目而異卢佣,因環(huán)境而異(不可度量性)
優(yōu)點(diǎn):
可以降低類的復(fù)雜度,一個(gè)類只負(fù)責(zé)一項(xiàng)職責(zé)虚茶,其邏輯肯定要比負(fù)責(zé)多項(xiàng)職責(zé)簡(jiǎn)單的多;
提高類的可讀性嘹叫,提高系統(tǒng)的可維護(hù)性;
變更引起的風(fēng)險(xiǎn)降低翰苫,變更是必然的,如果單一職責(zé)原則遵守的好甫题,當(dāng)修改一個(gè)功能時(shí),可以顯著降低對(duì)其他功能的影響。
————————————————
原文鏈接:https://blog.csdn.net/zhstrd/article/details/87888955
原文鏈接:https://blog.csdn.net/lovelion/article/details/7536542