婷婷综合国产,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
    欧美精品一区男女天堂| 一区二区三区在线观看动漫| 欧美国产国产综合| 丝袜亚洲另类欧美| 97精品国产97久久久久久久久久久久| 91精品久久久久久久91蜜桃| 中文字幕日韩一区| 韩国视频一区二区| 欧美精品久久久久久久多人混战| 国产精品女上位| 国产成人啪免费观看软件| 欧美艳星brazzers| 最近日韩中文字幕| 国产精品1区2区3区在线观看| 欧美精品久久99久久在免费线 | 成人a免费在线看| 日韩精品最新网址| 日本免费新一区视频| 欧美在线观看一区| 亚洲激情五月婷婷| 91小宝寻花一区二区三区| 中文子幕无线码一区tr| 国产69精品久久99不卡| 久久久久久毛片| 精品影院一区二区久久久| 欧美一区二区视频免费观看| 日韩国产精品久久久久久亚洲| 欧美中文字幕一区二区三区| 亚洲激情图片qvod| 欧美性色aⅴ视频一区日韩精品| 日韩美女视频19| 国产91在线观看| 国产欧美日韩视频在线观看| 国产一区二区精品在线观看| 精品国产免费视频| 久国产精品韩国三级视频| 欧美成人video| 麻豆91精品视频| 亚洲精品一区二区三区影院| 久久精品国产在热久久| 精品国产91久久久久久久妲己| 国产精品99久久久久久宅男| 国产嫩草影院久久久久| av在线不卡网| 一区二区三区欧美视频| 555www色欧美视频| 国产在线视频一区二区三区| 久久久一区二区三区| 高清久久久久久| 亚洲免费在线看| 91精品福利在线一区二区三区 | 久久女同性恋中文字幕| 国产福利精品一区| 中文字幕一区二区三区在线不卡| 99re这里都是精品| 日韩国产欧美在线播放| 日本一区二区免费在线| 色妹子一区二区| 日韩av电影免费观看高清完整版在线观看| 日韩欧美黄色影院| 成人激情免费视频| 三级久久三级久久久| 久久免费的精品国产v∧| 99久久er热在这里只有精品15| 亚洲国产精品久久久久婷婷884| 日韩三级视频中文字幕| 成人免费黄色大片| 午夜精品福利在线| 中文成人av在线| 欧美丰满嫩嫩电影| 成人丝袜视频网| 日韩在线一二三区| 亚洲日本在线视频观看| 日韩免费观看高清完整版 | 色综合欧美在线视频区| 免费成人在线网站| 亚洲丝袜精品丝袜在线| 欧美一级在线视频| 91丨porny丨在线| 国产91在线|亚洲| 免费在线观看日韩欧美| 亚洲免费观看高清完整| 久久午夜免费电影| 欧美一区二区在线免费观看| 97精品国产97久久久久久久久久久久| 麻豆国产一区二区| 亚洲成人动漫精品| 国产精品乱码妇女bbbb| 日韩欧美国产一区在线观看| 日本高清免费不卡视频| 成人av在线影院| 寂寞少妇一区二区三区| 日韩高清在线观看| 首页国产丝袜综合| 亚洲免费观看在线视频| 久久中文字幕电影| 日韩欧美自拍偷拍| 日韩欧美一区中文| 欧美一区二区三区免费大片 | 国产精品伦理在线| 久久久久久免费网| 久久先锋影音av鲁色资源网| 日韩美女在线视频| 精品国产乱码久久久久久浪潮 | 日本精品一区二区三区高清| 成人黄页在线观看| 成人性色生活片| 成人美女视频在线看| 国产在线视视频有精品| 黄页视频在线91| 狠狠色丁香婷综合久久| 精品一区二区综合| 国产一区二区成人久久免费影院| 久久国产生活片100| 精品影院一区二区久久久| 精彩视频一区二区| 国产suv精品一区二区三区| 菠萝蜜视频在线观看一区| www.av精品| 欧洲精品一区二区三区在线观看| 在线精品视频免费播放| 欧美日本国产视频| 日韩一区二区影院| 久久免费国产精品| 成人欧美一区二区三区黑人麻豆 | 欧美日韩不卡视频| 8v天堂国产在线一区二区| 欧美成人三级在线| 国产日产欧美一区二区视频| 中文字幕一区av| 亚洲一级电影视频| 蜜臀精品一区二区三区在线观看| 美女性感视频久久| 成人午夜视频在线| 在线亚洲高清视频| 日韩欧美123| 国产精品免费久久| 亚洲伊人色欲综合网| 喷水一区二区三区| 国产黑丝在线一区二区三区| 91视频一区二区三区| 欧美精品在线观看播放| 久久精品亚洲精品国产欧美| 国产精品每日更新在线播放网址| 亚洲国产综合91精品麻豆| 美国三级日本三级久久99| 国产91对白在线观看九色| 精品污污网站免费看| 亚洲精品在线免费观看视频| 日韩美女久久久| 久久爱www久久做| 99re热视频这里只精品| 91精品啪在线观看国产60岁| 国产精品国产自产拍高清av| 日日欢夜夜爽一区| 99精品热视频| 精品国产成人系列| 五月婷婷欧美视频| 国产成人av在线影院| 欧美三级蜜桃2在线观看| 国产欧美在线观看一区| 免费日本视频一区| 91理论电影在线观看| 精品成人在线观看| 亚洲v中文字幕| 99国产精品视频免费观看| xfplay精品久久| 日韩成人av影视| 91精品1区2区| 国产精品另类一区| 国产一区二区三区国产| 欧美久久久一区| 亚洲精品第一国产综合野| 成人午夜伦理影院| 日本一区二区三区电影| 激情久久五月天| 日韩视频一区二区在线观看| 一区二区三区四区中文字幕| 欧美亚洲动漫另类| 综合久久久久久| 成人国产一区二区三区精品| 精品国产区一区| 久久99精品网久久| 欧美精品vⅰdeose4hd| 亚洲高清免费观看高清完整版在线观看| eeuss鲁片一区二区三区| 欧美国产国产综合| k8久久久一区二区三区| 国产精品美女久久久久久久久 | 免费不卡在线视频| 欧美色涩在线第一页| 亚洲免费观看高清完整版在线 | 国产999精品久久久久久| 久久精品亚洲精品国产欧美| 国产一区二区三区精品视频| 国产日本欧洲亚洲| 成人午夜av电影| 综合激情成人伊人| 日本久久一区二区| 午夜婷婷国产麻豆精品|