日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

编写高质量代码改善C#程序的157个建议——建议104:用多态代替条件语句

發布時間:2025/4/9 C# 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编写高质量代码改善C#程序的157个建议——建议104:用多态代替条件语句 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

建議104:用多態代替條件語句

假設要開發一個自動駕駛系統。在設計之初,此自動駕駛系統擁有一個駕駛系統命令的枚舉類型:

enum DriveCommand{Start,Stop}

當前該枚舉存在兩個命令:開始、停止。又假設有一個駕駛方法可以處理車輛接收到的指令。一開始我們可能像下面這樣編碼:

static void Main(string[] args){DriveCommand command = DriveCommand.Start;Drive(command);command = DriveCommand.Stop;Drive(command);}static void Drive(DriveCommand command){if (command == DriveCommand.Start){//車輛啟動 }else if (command == DriveCommand.Stop){//車輛停止 }}

有些人可能喜歡用switch語句(當然,switch本質上也是if語句)。

static void Drive(DriveCommand command){switch (command){case DriveCommand.Start: //車輛啟動 break; case DriveCommand.Stop: //車輛停止 break; default: break; } }

?隨著更多的系統功能不斷地被開發出來,我們考慮為車輛加入的命令也越來越多,如下所示:

enum DriveCommand{Start,Stop,Pause,TurnLeft,TurnRight}

?

隨著DriveCommand元素的增加,采用if或switch語句將帶來可怕的混亂狀態是顯而易見的。在一個復雜的控制系統中,命令可能會多達上百條。每增加一條命,我們首先要修改Drive方法。Drive方法將會及其膨脹,而且每行代碼幾乎是一模一樣的:

if 命令

  then 行動

這種情況,我們不得不考慮重構原來的代碼。原來的設計理念也是欠妥當的,它不遵守設計模式中的“開閉原則”。開閉原則是指:對擴展開發,對修改關閉。遵從開閉原則的一次重構是,使用多態來規避不斷膨脹的條件語句。首先,設計一個抽象類Commander:

abstract class Commander{public abstract void Execute();}

?

所有的Start或者Stop之類的命令,全部繼承自這個抽象類:

class StartCommander : Commander{public override void Execute(){//啟動 }}class StopCommander : Commander{public override void Execute(){//停止 }}

?

在使用多態后,調用方法的代碼應該如下所示:

static void Main(string[] args){Commander commander = new StartCommander();Drive(commander);commander = new StopCommander();Drive(commander);}static void Drive(Commander commander){commander.Execute();}

?

可見,代碼簡潔了不少,而且,可擴展性增強了。即使未來還需要增加命令,擴展相應的子類就可以了。而且我們關閉了修改,即對Drive方法,即使增加再多的命令,也不需要對其進行修改。

?

?

轉自:《編寫高質量代碼改善C#程序的157個建議》陸敏技

轉載于:https://www.cnblogs.com/jesselzj/p/4747504.html

總結

以上是生活随笔為你收集整理的编写高质量代码改善C#程序的157个建议——建议104:用多态代替条件语句的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 视频一区二区在线播放 | 亚洲午夜一区二区 | 国产 日韩 欧美 综合 | 亚洲国产成人91精品 | 午夜视频免费在线观看 | 日韩视频福利 | 久久久久久久久国产精品一区 | 激情自拍视频 | 亚洲成人资源 | 东方成人av | 成人国产网站 | 国产日韩欧美精品一区 | 亚洲成a人无码 | 怡红院av在线 | 久久精品视频播放 | 伊人色综合久久久 | 久久免费看少妇 | 黄色免费看网站 | 午夜看片在线 | 欧av在线 | 有机z中国电影免费观看 | 微拍福利一区二区 | 婷婷精品一区二区三区 | 国产裸体永久免费视频网站 | 日韩男人天堂 | 国产911视频 | 成年网站免费观看 | 狠狠人妻久久久久久 | 久久91亚洲人成电影网站 | 一本久道久久综合无码中文 | wwwxxx在线播放 | 欧美黄色影院 | 国产亚洲精品久久久久久青梅 | 狠狠热免费视频 | 国产永久免费无遮挡 | 成为性瘾网黄的yy对象后 | 国产精品入口久久 | 午夜影院福利 | 国产黄色片免费观看 | 色久天| 国产99对白在线播放 | 午夜神马影院 | 国产精品色呦呦 | 91欧美亚洲 | 国内精久久久久久久久久人 | 欧洲久久精品 | 国产精品无码专区av免费播放 | 日日摸日日添日日躁av | 精品人妻一区二区三区蜜桃 | 欧美美女视频 | 天天噜日日噜 | 国产精品成人无码免费 | 青青草社区 | 伊人爱爱网 | 人人干人人爽 | 午夜视频在线网站 | 黄色一级免费网站 | 亚洲视频一区二区三区四区 | 亚洲色偷偷综合亚洲av伊人 | 午夜丁香婷婷 | 日韩美女三级 | 日韩av中文字幕在线 | 性做久久久久久久久 | 日韩在线免费观看av | 欧美激情15p | 中日韩男男gay无套 人人草人人干 | 91麻豆一区二区 | 成人午夜视频精品一区 | 亚洲va国产天堂va久久 en | 激情文学亚洲 | 88福利视频 | 激情小说亚洲图片 | 亚洲第一狼人区 | 亚洲成人自拍网 | 亚洲福利 | 国产美女主播在线 | 亚洲国产精品尤物yw在线观看 | 波多野结衣办公室33分钟 | 精品99视频 | 天堂网站| 91插视频 | 日本va在线 | 久久久久久欧美精品se一二三四 | 久久高清免费视频 | 黄色av网站免费观看 | 天堂av亚洲 | 按摩毛片 | 亚洲熟妇毛茸茸 | 国产又粗又黄又爽又硬 | 成人毛片在线播放 | 天天干天天操天天插 | 少妇又紧又色 | 久久精品视频在线观看 | 欧美69久成人做爰视频 | 性欧美丰满熟妇xxxx性仙踪林 | hd丰满圆润的女人hd | 男人的天堂亚洲 | 欧美做爰全过程免费看 | 亚洲精品视频在线看 |