九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
面向?qū)ο笤O(shè)計(jì)原則之一:單一職責(zé)原則

單一職責(zé)原則(Single Responsibility Principle SRP)

  There should never be more than one reason for a class to change.

  什么意思呢?

  所謂單一職責(zé)原則就是一個(gè)類只負(fù)責(zé)一個(gè)職責(zé),只有一個(gè)引起變化的原因。

      如果一個(gè)類承擔(dān)的職責(zé)過多,就等于把這些職責(zé)耦合在一起,一個(gè)職責(zé)的變化會(huì)削弱或抑制這個(gè)類完成其他職責(zé)的能力,這個(gè)耦合會(huì)脆弱的設(shè)計(jì)。

軟件設(shè)計(jì)真正要做的許多內(nèi)容,就是發(fā)現(xiàn)職責(zé)并把這些職責(zé)相互分離;如果能夠想到多于一個(gè)動(dòng)機(jī)去改變一個(gè)類,那么這個(gè)類就具有多于一個(gè)職責(zé),就應(yīng)該考慮類的分離。

以調(diào)制解調(diào)器為例如下圖:

                                       

      從上述類圖里面我們發(fā)現(xiàn)有四個(gè)方法Dial(撥通電話),Hangup(掛電話),Receive(收到信息),Send(發(fā)送信息),經(jīng)過分析不難判斷出,實(shí)際上Dial(撥通電話)和Hangup(掛電話)是屬于連接的范疇,而Receive(收到信息)和Send(發(fā)送信息)是屬于數(shù)據(jù)傳送的范疇。這里類包括兩個(gè)職責(zé),顯然違反了SRP。

      這樣做有潛在的隱患,如果要改變連接的方式,勢必要修改Modem,而修改Modem類的結(jié)果導(dǎo)致凡事依賴Modem類可能都需要修改,這樣就需要重新編譯和部署,不管數(shù)據(jù)傳輸這部分是否需要修改。

       因此要重構(gòu)Modem類,從中抽象出兩個(gè)接口,一個(gè)專門負(fù)責(zé)連接,另一個(gè)專門負(fù)責(zé)數(shù)據(jù)傳送。依賴Modem類的元素要做相應(yīng)的細(xì)化,根據(jù)職責(zé)的不同分別依賴不同的接口。如下圖:

                                        

 

       這樣以來,無論單獨(dú)修改連接部分還是單獨(dú)修改數(shù)據(jù)傳送部分,都彼此互不影響。

 

總結(jié)單一職責(zé)優(yōu)點(diǎn):

     降低類的復(fù)雜性,

     提高可維護(hù)性

     提高可讀性。

     降低需求變化帶來的風(fēng)險(xiǎn)。需求變化是不可避免的,如果單一職責(zé)做的好,一個(gè)接口修改只對相應(yīng)的實(shí)現(xiàn)類有影響,對其它的接口無影響,這對系統(tǒng)的擴(kuò)展性和維護(hù)性都有很大的幫助。

 

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
<p>面向?qū)ο箢愒O(shè)計(jì)的五大原則(一)</p><p>單一職責(zé)原則Single Responsibility Principle </p>
面向?qū)ο蟮幕驹瓌t
設(shè)計(jì)模式之6大設(shè)計(jì)原則(1)
程序開發(fā)設(shè)計(jì)模式速談:一、概論
面向?qū)ο笤O(shè)計(jì)的原則——單一職責(zé)原則
面向?qū)ο笤O(shè)計(jì)原則之單一職責(zé) - 51CTO.COM
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服