婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > 淺談c#設(shè)計(jì)模式之單一原則

淺談c#設(shè)計(jì)模式之單一原則

熱門標(biāo)簽:400免費(fèi)電話怎么辦理 外呼電銷機(jī)器人軟件 400電話辦理最優(yōu)質(zhì) 威海電銷 關(guān)于宗地圖標(biāo)注技術(shù)規(guī)范 寧夏機(jī)器人電銷 河北網(wǎng)絡(luò)回?fù)芡夂粝到y(tǒng) 河南語音外呼系統(tǒng)公司 t3出行地圖標(biāo)注怎么做

單一原則: 程序設(shè)計(jì)時(shí)功能模塊獨(dú)立,功能單一更有助于維護(hù)和復(fù)用。

例如:個(gè)人計(jì)算機(jī)功能很多,如果想從中只拿出一個(gè)功能來制造一個(gè)新的東西是困難的。同時(shí)如果你的計(jì)算機(jī)開不機(jī),同時(shí)你的計(jì)算器功能也不能用了。

在編程中如果一個(gè)類封裝了太多功能和上面的結(jié)果是類似的。

單一職責(zé)原則

例1:


大家應(yīng)該能看出來這個(gè)類圖中的接口設(shè)計(jì)是有問題的,用戶的屬性和用戶的行為沒有分開。我們根據(jù)用戶的屬性和行為拆開這個(gè)接口。



重新拆分成兩個(gè)接口,IUserBo 負(fù)責(zé)用戶的屬性,IUserBiz負(fù)責(zé)用戶的行為。當(dāng)我們實(shí)例化除UserINfo這個(gè)對(duì)象后,我們可以把UserInfo當(dāng)做IUserBo實(shí)現(xiàn)類使用也可以將它當(dāng)做IUserBiz的實(shí)現(xiàn)類使用,這就要看我們用在什么地方了。如果是獲取用戶信息,就把UserInfo 當(dāng)做IUserBOSS的實(shí)現(xiàn)類,如果是維護(hù)用戶信息,就當(dāng)做是IUserBiz的實(shí)現(xiàn)類。在實(shí)際應(yīng)用中我們更傾向于把一個(gè)接口拆分成兩個(gè),一個(gè)是IUserBO一個(gè)是IUserBIz。類圖如下。


這樣做以后,我們就把一個(gè)接口拆成了兩個(gè),這樣就符合了單一職責(zé)原則,那么什么是單一職責(zé)原則呢?

單一職責(zé)原則,核心思想是:一個(gè)類,最好只做一件事,只有一個(gè)引起它變化的原因。

單一職責(zé)原則可以看作是低耦合、高內(nèi)聚在面向?qū)ο笤瓌t上的引申,將職責(zé)定義為引起變化的原因,以提高內(nèi)聚性來減少引起變化的原因。職責(zé)過多,可能引起變化的原因就越多,這將是導(dǎo)致職責(zé)依賴,相互之間就產(chǎn)生影響,從而極大的損傷其內(nèi)聚性和耦合度。單一職責(zé)通常意味著單一的功能,因此不要為類實(shí)現(xiàn)過多的功能點(diǎn),以保證實(shí)體只有一個(gè)引起它變化的原因。例2:

Rectangle擁有兩個(gè)方法,一個(gè)方法是draw,用來畫圖形,另一個(gè)方法是area用來計(jì)算面積。Rectangle違背了單一職責(zé)原則,因?yàn)樗哂袃蓚€(gè)職責(zé):計(jì)算面積與繪制矩形。繪制圖形會(huì)與用戶界面有關(guān),但是計(jì)算圖形面積卻未必與界面有關(guān),如果把這兩個(gè)職責(zé)寫到一個(gè)類中,那么如果只需要使用area()方法這一職責(zé)來計(jì)算面積,那就不得不把draw()方法一同編譯,但是卻可能也用不到它。如果其中一個(gè)職責(zé)需要修改,就不得不重新編譯和部署另外一個(gè)。如果類的職責(zé)超過一個(gè),這些職責(zé)之間就會(huì)產(chǎn)生耦合。改變一個(gè)職責(zé),可能會(huì)影響和妨礙類為其它類服務(wù)的功能。把兩個(gè)職責(zé)分開會(huì)好一些。


兩個(gè)職責(zé)分離,這樣耦合度就會(huì)降低。SRP原則的核心就是要求對(duì)類的改變只能是一個(gè),對(duì)于違反這一原則的類應(yīng)該進(jìn)行重構(gòu),例如以Façade模式或Proxy模式分離職責(zé),通過基本的方法Extract Interface、Extract Class和Extract Method進(jìn)行梳理。

例3:看一下下面的接口

    public interface Phone
    {
        //撥通電話
        public void dial(string phoneNumber);
        //通話
        public void chat(object o);
        //回應(yīng)
        public void answer(object o);
        //通話完畢
        public void huangup();
    }


這個(gè)接口有問題嗎?還真有問題。單一職責(zé)要求一個(gè)接口或者類只有一個(gè)原因引起變化,也就是一個(gè)接口或者類只有一個(gè)職責(zé),它負(fù)責(zé)一件事情。Phone這個(gè)接口不是一個(gè)職責(zé),它是有兩個(gè)職責(zé):一個(gè)是協(xié)議管理,一個(gè)是數(shù)據(jù)傳輸。diag()和huangup()這兩個(gè)方法實(shí)現(xiàn)的是協(xié)議管理,撥號(hào)和掛斷。chat()和answer()是數(shù)據(jù)傳輸。協(xié)議改變和數(shù)據(jù)傳輸都會(huì)引起類的變化,那么我們就不能說它是符合單一職責(zé)原則。由于這兩個(gè)職責(zé)變化不互相影響,那么就考慮拆成兩個(gè)接口。

這個(gè)類圖已經(jīng)符合單一職責(zé)原則,但是卻復(fù)雜多了,組合是一種強(qiáng)耦合關(guān)系,兩者都有共同的生命期,這種強(qiáng)耦合增加了類的復(fù)雜性,我們修改一下。



這樣設(shè)計(jì)才完美,一個(gè)手機(jī)實(shí)現(xiàn)兩個(gè)接口,把兩個(gè)職責(zé)融合一個(gè)類中,雖然你會(huì)覺得這個(gè)phone類有兩個(gè)原因引起變化,但是我們是面向接口編程,對(duì)外公布的是接口,而不是實(shí)現(xiàn)類。如果非要使得類符合單一職責(zé)原則,那么就要使用上一個(gè)類圖了,但是這樣的話類的耦合性就增加了.

單一職責(zé)原則的好處:類的復(fù)雜性降低可讀性提高可維護(hù)性提高變更引起的風(fēng)險(xiǎn)降低

您可能感興趣的文章:
  • C#面向?qū)ο笤O(shè)計(jì)的七大原則
  • 淺談C#設(shè)計(jì)模式之開放封閉原則
  • 高效C#編碼優(yōu)化原則
  • C# 自定義異常總結(jié)及嚴(yán)格遵循幾個(gè)原則
  • C# 面向?qū)ο蟮幕驹瓌t
  • 淺談C#六大設(shè)計(jì)原則

標(biāo)簽:淮北 賀州 咸寧 樂山 池州 吉林 廣元 固原

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談c#設(shè)計(jì)模式之單一原則》,本文關(guān)鍵詞  淺談,設(shè)計(jì)模式,之,單一,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談c#設(shè)計(jì)模式之單一原則》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺談c#設(shè)計(jì)模式之單一原則的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久先锋影音av鲁色资源网| 日韩欧美综合一区| 欧美精品一区二区久久婷婷| 国产亚洲污的网站| 色婷婷久久久久swag精品| 免费视频最近日韩| 一二三区精品视频| 蜜乳av一区二区| 国产精品传媒视频| 丝袜美腿一区二区三区| 亚洲天堂免费看| 99久久综合99久久综合网站| 裸体一区二区三区| 日韩区在线观看| 欧美中文字幕久久| 91亚洲国产成人精品一区二区三 | 欧美mv日韩mv国产网站app| 欧美国产成人在线| 久久久亚洲精华液精华液精华液| 亚洲a一区二区| 亚洲精品欧美在线| 亚洲人吸女人奶水| 91福利国产精品| 成人av免费在线播放| 国产福利一区二区三区视频 | 蜜臀av性久久久久蜜臀aⅴ| 91一区一区三区| 东方欧美亚洲色图在线| 狠狠色狠狠色综合系列| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩成人综合| 91福利视频网站| 亚洲国产综合91精品麻豆| 亚洲视频香蕉人妖| 欧美午夜精品久久久| 欧美午夜一区二区三区免费大片| 亚洲二区在线视频| 亚洲18女电影在线观看| 国产精品一二三四五| 精品一区二区三区久久| 国内精品国产三级国产a久久| 中文子幕无线码一区tr| 久久麻豆一区二区| 国产精品日韩成人| 亚洲一二三区不卡| 麻豆精品一区二区av白丝在线| 欧美国产日韩a欧美在线观看| 欧美三级电影在线看| 久久精品国产精品亚洲综合| 国产精品你懂的| 亚洲九九爱视频| 亚洲大型综合色站| 九色综合国产一区二区三区| 成人av资源网站| 欧美美女黄视频| 国产精品免费人成网站| 视频在线在亚洲| 免费在线观看视频一区| 久久无码av三级| 亚洲欧美另类久久久精品2019| 欧美日韩另类一区| 91色视频在线| 国产成人免费av在线| 色诱视频网站一区| 国产九九视频一区二区三区| 在线影院国内精品| 欧美一级二级在线观看| 久久久久久久久久电影| 亚洲午夜久久久久久久久久久| 亚洲免费色视频| 久久精品国产99国产精品| 麻豆精品在线看| 色综合久久久久久久久| 色吊一区二区三区 | 一区二区在线观看免费 | 色综合亚洲欧洲| 欧美一级日韩一级| 一区二区三区四区蜜桃| 成人一级片在线观看| 欧美剧情片在线观看| 91精品国产综合久久小美女| 一区精品在线播放| 国产盗摄视频一区二区三区| 亚洲v日本v欧美v久久精品| 亚洲夂夂婷婷色拍ww47| 国产资源在线一区| 日韩视频免费观看高清完整版| 精品久久国产老人久久综合| 一区二区三区四区不卡视频| 国产伦精品一区二区三区视频青涩| 欧美亚洲愉拍一区二区| 精品国产91乱码一区二区三区| 久久日韩粉嫩一区二区三区| 久久综合九色综合久久久精品综合 | 国精产品一区一区三区mba桃花 | 亚洲丝袜自拍清纯另类| 经典三级一区二区| 91精品国产丝袜白色高跟鞋| 亚洲乱码国产乱码精品精可以看| 国产欧美精品一区aⅴ影院 | 国产精品久久久久一区二区三区 | 在线观看日韩毛片| 国产精品视频免费看| 国产欧美综合在线| 国产在线视频一区二区三区| 欧美r级电影在线观看| 精品女同一区二区| 亚洲1区2区3区视频| 一本色道a无线码一区v| 美女性感视频久久| 欧美色爱综合网| 国产成人aaaa| 欧美一区二区三区爱爱| 婷婷综合另类小说色区| 51精品国自产在线| 亚洲国产毛片aaaaa无费看| 91福利视频网站| 婷婷国产在线综合| 欧美日韩一区二区三区不卡| 日本午夜一本久久久综合| 国产制服丝袜一区| 久久精品网站免费观看| 青青草国产成人99久久| 日韩女优电影在线观看| 在线不卡一区二区| 国产亲近乱来精品视频| 99riav一区二区三区| 中文字幕一区二区三区精华液| 亚洲综合丁香婷婷六月香| 欧美日韩在线亚洲一区蜜芽| 久久久久久久性| 成人黄色在线网站| 亚洲美女精品一区| 日韩欧美国产成人一区二区| 成人免费视频一区| 爽好久久久欧美精品| 国产欧美精品一区二区色综合| 蜜臀久久99精品久久久久宅男 | 国产成人综合精品三级| 处破女av一区二区| 日韩一区二区三区av| 国精品**一区二区三区在线蜜桃| 91亚洲资源网| 午夜精品久久久久久久99水蜜桃| 一本久道中文字幕精品亚洲嫩| 欧美精品一区二区在线观看| 午夜欧美大尺度福利影院在线看| 91在线观看视频| 日韩成人免费电影| 中文字幕的久久| 欧美不卡一区二区三区四区| 日本韩国精品在线| 亚洲成年人影院| 国产欧美一区二区三区鸳鸯浴| 久久精品72免费观看| 欧美伊人久久久久久午夜久久久久| 国产亚洲婷婷免费| www.成人在线| 久久精品99久久久| 91精品国产一区二区三区香蕉| 中文字幕制服丝袜成人av| 免费观看一级欧美片| 精品嫩草影院久久| 91亚洲国产成人精品一区二区三| 久久久久久免费毛片精品| 欧美在线观看视频一区二区三区| 国产精品大尺度| 久久一区二区视频| 欧美一区二区三区视频在线观看| 亚洲日穴在线视频| www欧美成人18+| 4438成人网| 欧美日韩一区视频| 一级做a爱片久久| 成人av综合在线| 久久99精品久久久久久国产越南 | 一色桃子久久精品亚洲| 精品一区二区在线视频| 一区二区三区四区不卡视频| 久久五月婷婷丁香社区| 欧美一区二区三区免费| 亚洲国产精品人人做人人爽| 久久九九全国免费| 久久久亚洲综合| 日本欧美加勒比视频| 色婷婷综合久久久久中文一区二区| 国产精品久99| 久久午夜国产精品| 欧美日韩aaaaaa| 欧美日韩免费观看一区三区| 色欧美日韩亚洲| 一区二区三区在线视频免费| 国产日产欧产精品推荐色| 中文字幕av不卡| 国产精品网站在线观看| 日韩欧美中文一区| 欧美va亚洲va香蕉在线| 久久只精品国产| 国产亚洲欧美日韩在线一区| 欧美大片在线观看一区二区|