日韩性视频-久久久蜜桃-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久久 | 成人免费看黄 | www.199麻豆 | 日本久久一区二区 | 婷婷俺来也 | 中文字幕高清av | 国产在线视频卡一卡二 | 中文字幕亚洲在线观看 | 草久在线视频 | 日日干夜夜撸 | 国产裸体舞一区二区三区 | 射死你天天日 | 91手机在线 | 免费观看成年人网站 | 激情婷婷丁香 | 国产伦精品一区二区三区妓女下载 | 污污的网站在线观看 | 国内成人在线 | 亚洲精品字幕在线观看 | 伊人中文字幕在线观看 | 国产精品久久久久久久久久久久久久久久 | xxxx黄色| 天天弄| 日韩爱爱网站 | 19禁大尺度做爰无遮挡电影 | 狠狠爱免费视频 | 国产亚洲精品成人无码精品网站 | 久久久久久久穴 | 亚洲第一网址 | 精品久久在线观看 | 1级av| 亚洲成人免费在线视频 | 蜜臀av在线免费观看 | 天堂av日韩 | 欧美高h视频 | 黄色大尺度视频 | 日韩精品免费一区二区三区竹菊 | 欧美日一区二区三区 | 加勒比精品在线 | 国产丝袜高跟 | 免费精品无码AV片在线观看黄 | 美女隐私无遮挡 | 精品人妻一区二区三区四区久久 | 粗大黑人巨茎大战欧美成人免费看 | 一区二区三区波多野结衣 | 欧美丰满少妇人妻精品 | 极品销魂美女一区二区三区 | 亚洲毛片网 | 亚洲大片免费 | 国产又粗又猛又爽又黄的视频在线观看动漫 | av不卡一区| 久久亚洲AV成人无码一二三 | 91tv在线观看 | 五月综合激情 | 国产做受高潮 | 国产靠逼视频 | 涩涩在线观看 | 国产美女又黄又爽又色视频免费 | 久久亚洲综合色图 | 精品国产欧美一区二区 | 麻豆成人在线观看 | 日韩av手机在线免费观看 | 国产激情久久 | 国产片淫乱18一级毛片动态图 | 国产无套精品一区二区 | 黄色片在线免费观看 | 日本涩涩视频 | 秋霞午夜网| 精品国产高清在线观看 | 韩国一级淫片 | 人妻体内射精一区二区 | 亚洲毛片一级 | 久久久国产成人一区二区三区 | 亚洲一区精品视频在线观看 | 久久精品视频在线播放 | 亚洲无码乱码精品国产 | 午夜婷婷丁香 | 国产精品成人一区二区三区电影毛片 | 久久国产精品系列 | 欧美与黑人午夜性猛交久久久 | 中文字幕免费高清视频 | 天天舔天天操天天干 | 处破痛哭a√18成年片免费 | 不卡二区 | 国产一区二区三区欧美 | 欧美色图亚洲色 | 国产一区二区视频播放 | 色婷婷精品国产一区二区三区 | 国产精选一区二区 | 久久国产精品二区 | 污污软件在线观看 | 99热国产在线 | 欧美二区在线 | 久久视频中文字幕 | 日韩女同一区二区三区 | a在线视频 | 男女视频在线免费观看 | 人人爽人人爽人人 | 久久一区精品 |