中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

代碼重構怎么做
來源:易賢網 閱讀:1449 次 日期:2015-04-20 10:52:24
溫馨提示:易賢網小編為您整理了“代碼重構怎么做”,方便廣大網友查閱!

這幾天,接手一個同事的代碼,關于微信接口開發的,那一堆的 if,看得哥蛋痛了,這個毛病也是很多新手容易犯的,所以特地把這次重構寫出來。

下面來我們看看這個代碼的問題所在,if else 里面的代碼塊邏輯,不好改,使得它的重用性為 0,并且難以閱讀。當然,如果 if 只有一兩個,或者3個,這樣寫是問題不大的。

但是如果多了,這種代碼便會讓維護變得困難起來。

if (strMsgType == "text")

{

textContentClient = rootElement.SelectSingleNode("Content").InnerText;

strResult = SetMsgType_Text(strClientName, textContentClient, db, strServerName, Identity);

System.Diagnostics.Trace.WriteLine(strResult);

return Content(strResult);

}

else if (strMsgType == "event")

{

string eventType = rootElement.SelectSingleNode("Event").InnerText.ToLower();

if (eventType == "subscribe")

{

string keyCode = "";

if (rootElement.SelectSingleNode("EventKey") != null)

keyCode = rootElement.SelectSingleNode("EventKey").InnerText.ToLower();

strResult = FormatEventSubscribe(keyCode);

RecordReplyMessage();

return Content(strResult);

}

else if (eventType == "scan")

{

string keyCode = rootElement.SelectSingleNode("EventKey").InnerText.ToLower();

var outLetName = "歡迎關注";

var outletDB = ShoppingContext.CreateInstance(Identity);

var outLetModel = outletDB.Outlets.FirstOrDefault(o => o.SceneId == Int32.Parse(keyCode));

if (outLetModel != null)

outLetName += outLetModel.Name;

return Content(GetTextTemp(strClientName, strServerName, outLetName));

}

else if (eventType == "click")

{

string keyCode = rootElement.SelectSingleNode("EventKey").InnerText.ToLower();

strResult = FomatMenuMessage(keyCode);

return Content(strResult);

}

else if (eventType == "unsubscribe")

{

var subIds = db.ReplyRecords.Where(r => r.FromOpenId == this.ClientId.ToString() && r.EMessType == EEventType.Subscribe.ToString() && r.KeyWord != null).Select(o => o.KeyWord).ToArray();

var unSubIds = db.ReplyRecords.Where(r => r.FromOpenId == this.ClientId.ToString() && r.EMessType == EEventType.Unsubscribe.ToString() && r.KeyWord != null).Select(o => o.KeyWord).ToArray();

var SencesId = "";

foreach (var k in subIds)

{

if (!unSubIds.Contains(k))

{

this.ReplyModel.KeyWord = k;

break;

}

}

this.ReplyModel.EMessType = EEventType.Unsubscribe.ToString();

RecordReplyMessage();

}

}

else if (strMsgType.ToLower() == "location")

{

string strLocation_X = rootElement.SelectSingleNode("Location_X").InnerText;

string strLocation_Y = rootElement.SelectSingleNode("Location_Y").InnerText;

strResult = FormatOutLetLBS(double.Parse(strLocation_X), double.Parse(strLocation_Y), 10);

//strResult = FormatTextMessage(strLocation_X + "|" + strLocation_Y);

return Content(strResult);

}

else if (strMsgType.ToLower() == "image")

{

string strImgUrl = rootElement.SelectSingleNode("PicUrl").InnerText;

}

一種比較好的處理方法就是把語句塊內的代碼抽出來,寫成函數,如下面所示:

public class MessageProcesser

{

public ReplyMessage Process(string xml)

{

var msg = PostMessage.FromXml(xml);

switch (msg.MsgType)

{

case Models.PostMessageType.Event:

var eventType = ((EventMessage)msg).Event;

switch (eventType)

{

case EventType.Click:

return ProcessClickEvent((ClickEvent)msg);

case EventType.Location:

return ProcessLocationEvent((LocationEvent)msg);

case EventType.Scan:

return ProcessScanEvent((ScanEvent)msg);

case EventType.Subscribe:

return ProcessSubscribeEvent((SubscribeEvent)msg);

case EventType.Unsubscribe:

return ProcessUnsubscribeEvent((UnsubscribeEvent)msg);

}

break;

case Models.PostMessageType.Image:

return ProcessImageMessage((ImageMessage)msg);

case Models.PostMessageType.Link:

return ProcessLinkMessage((LinkMessage)msg);

case Models.PostMessageType.Location:

return ProcessLocationMessage((LocationMessage)msg);

case Models.PostMessageType.Text:

return ProcessTextMessage((TextMessage)msg);

case Models.PostMessageType.Video:

return ProcessVideoMessage((VideoMessage)msg);

case Models.PostMessageType.Voice:

return ProcessVoiceMessage((VoiceMessage)msg);

}

return null;

}

protected virtual ReplyMessage ProcessClickEvent(ClickEvent msg)

{

return DefaultProcess(msg);

}

protected virtual ReplyMessage ProcessLocationEvent(LocationEvent msg)

{

return DefaultProcess(msg);

}

protected virtual ReplyMessage ProcessScanEvent(ScanEvent msg)

{

return DefaultProcess(msg);

}

protected virtual ReplyMessage ProcessSubscribeEvent(SubscribeEvent msg)

{

return DefaultProcess(msg);

}

protected virtual ReplyMessage ProcessUnsubscribeEvent(UnsubscribeEvent msg)

{

return DefaultProcess(msg);

}

protected virtual ReplyMessage ProcessImageMessage(ImageMessage msg)

{

return DefaultProcess(msg);

}

protected virtual ReplyMessage ProcessLinkMessage(LinkMessage msg)

{

return DefaultProcess(msg);

}

protected virtual ReplyMessage ProcessLocationMessage(LocationMessage msg)

{

return DefaultProcess(msg);

}

protected virtual ReplyMessage ProcessTextMessage(TextMessage msg)

{

return DefaultProcess(msg);

}

protected virtual ReplyMessage ProcessVideoMessage(VideoMessage msg)

{

return DefaultProcess(msg);

}

protected virtual ReplyMessage ProcessVoiceMessage(VoiceMessage msg)

{

return DefaultProcess(msg);

}

protected virtual ReplyMessage DefaultProcess(PostMessage msg)

{

var reply = new TextReply(msg);

if (msg.MsgType == PostMessageType.Event)

{

reply.Content = string.Format("{0} event is not processed.", ((EventMessage)msg).Event);

}

else

{

reply.Content = string.Format("{0} message is not processed.", msg.MsgType);

}

return reply;

}

}

更多信息請查看IT技術專欄

更多信息請查看技術文章
易賢網手機網站地址:代碼重構怎么做
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
国产在线麻豆精品观看| 亚洲国产日韩欧美在线动漫| 国产在线高清精品| 欧美一区国产二区| 国产一区在线观看视频| 你懂的视频一区二区| 在线亚洲一区二区| 国产日韩亚洲欧美综合| 久久中文精品| 中文无字幕一区二区三区| 国产人成一区二区三区影院| 久久亚洲午夜电影| 亚洲午夜久久久久久久久电影院 | 亚洲精品网站在线播放gif| 欧美另类综合| 久久久成人精品| 亚洲一区美女视频在线观看免费| 狠狠色狠狠色综合人人| 欧美日韩精品免费| 美女主播视频一区| 久久精品夜色噜噜亚洲a∨| 亚洲裸体俱乐部裸体舞表演av| 韩国精品在线观看| 国产精品久久久久9999| 欧美黄色aaaa| 欧美69视频| 久久人人精品| 久久女同精品一区二区| 欧美在线播放| 亚洲欧美日韩在线不卡| 99亚洲视频| 妖精成人www高清在线观看| 在线观看亚洲一区| 精品51国产黑色丝袜高跟鞋| 国产亚洲精品久久飘花| 老司机久久99久久精品播放免费 | 国产精品亚洲成人| 国产精品久久久久久久久动漫| 欧美日本不卡| 欧美日韩亚洲综合| 欧美日韩一区三区| 国产精品久久久久免费a∨| 国产精品久久久久久久久久直播| 国产精品久久二区二区| 国产日韩欧美亚洲一区| 国产在线欧美日韩| 亚洲日韩中文字幕在线播放| 亚洲最黄网站| 久久久久久久久久久久久女国产乱 | 国产一区二区精品久久99| 在线观看视频免费一区二区三区| 亚洲二区免费| 亚洲欧美精品一区| 久久综合伊人77777尤物| 欧美96在线丨欧| 国产精品久久久久久久浪潮网站| 国产一区视频网站| 国产日韩欧美视频在线| 91久久精品一区| 午夜精品久久久久久99热| 麻豆九一精品爱看视频在线观看免费 | 夜夜嗨网站十八久久| 新狼窝色av性久久久久久| 美女视频一区免费观看| 国产精品一二| 中文有码久久| 午夜精品一区二区三区四区| 欧美伦理一区二区| 国产精品推荐精品| 欧美中在线观看| **欧美日韩vr在线| 久久久久免费| 欧美极品在线视频| 欧美va亚洲va国产综合| 国产精品久久一区二区三区| 亚洲综合999| 99视频+国产日韩欧美| 亚洲一区二区精品视频| 久久最新视频| 亚洲视频网在线直播| 亚洲国产日韩欧美在线图片| 亚洲国产日韩欧美在线动漫| 国产欧美日韩综合| 欧美日韩一区二区三区免费| 久久久国产亚洲精品| 一区二区欧美精品| 欧美日韩精品一区二区天天拍小说 | 亚洲国产精品va在线观看黑人| 欧美日韩aaaaa| 一区二区三区高清| 国内精品久久久久影院优 | 国产精品色午夜在线观看| 欧美一区二区三区免费在线看| 亚洲人精品午夜| 国内精品久久久久影院色| 欧美亚洲成人网| 欧美黄在线观看| 久久久久久久一区| 午夜日韩av| 亚洲欧美一区二区原创| 日韩网站免费观看| 亚洲激情欧美| 在线观看日韩专区| 国语自产偷拍精品视频偷| 国产欧美欧洲在线观看| 国产九色精品成人porny| 国产精品久久久久一区二区| 欧美日韩国产天堂| 欧美大片一区| 欧美成人网在线| 久久在线精品| 久久精品理论片| 99re6热在线精品视频播放速度| 国产午夜精品在线观看| 欧美不卡福利| 性欧美大战久久久久久久免费观看| 亚洲国产成人av好男人在线观看| 欧美日韩一级黄| 麻豆久久婷婷| 久久久午夜电影| 欧美一区二区免费视频| 亚洲欧美日韩精品久久久久| 久久精品二区三区| 亚洲破处大片| 亚洲日本va在线观看| 亚洲黄色尤物视频| 在线日韩中文字幕| 伊人久久大香线| 亚洲国产影院| 亚洲精一区二区三区| 中文日韩在线| 亚洲欧美中日韩| 久久久久久9| 亚洲欧美日韩精品综合在线观看| 亚洲伊人网站| 久久久99爱| 欧美福利一区二区| 欧美日韩专区| 国产精品美女www爽爽爽| 国产精品日韩| 国产精品久久久久免费a∨大胸| 国产精品视频一区二区高潮| 国产一区高清视频| 亚洲欧洲另类| 亚洲已满18点击进入久久| 欧美一区激情| 欧美大片在线影院| 欧美视频一区二区| 国产亚洲精品久久久久婷婷瑜伽| 最新高清无码专区| 亚洲午夜精品国产| 久久精品一区二区| 欧美精品一二三| 国产精品一区毛片| 伊人夜夜躁av伊人久久| 亚洲图片激情小说| 久久亚洲国产精品日日av夜夜| 欧美国产一区二区| 国产精品欧美一区二区三区奶水| 国内精品一区二区三区| 亚洲精品在线一区二区| 欧美在线视频免费| 欧美日韩国产黄| 国内外成人在线视频| 亚洲一区二区三区四区五区黄 | 亚洲中字黄色| 免费在线视频一区| 国产农村妇女毛片精品久久莱园子| 亚洲人成网站影音先锋播放| 欧美在线视频免费播放| 欧美日韩亚洲视频一区| 亚洲丰满在线| 久久九九热免费视频| 国产精品视频自拍| 一区二区日韩伦理片| 农村妇女精品| 国精产品99永久一区一区| 亚洲砖区区免费| 欧美日韩高清在线观看| 亚洲国产成人午夜在线一区| 久久丁香综合五月国产三级网站| 亚洲三级性片| 久久精品亚洲一区二区三区浴池| 国产精品毛片a∨一区二区三区|国| 99热在线精品观看| 欧美 日韩 国产在线| 一区二区三区在线免费视频| 欧美一区二区成人| 国产精品美女主播| 亚洲午夜三级在线| 欧美色图首页| 宅男精品视频| 欧美日韩精品欧美日韩精品| 亚洲欧洲精品一区二区三区波多野1战4| 欧美一区二区视频在线| 欧美日韩一区高清| 亚洲国产日韩欧美在线图片| 欧美成人免费在线| 亚洲全部视频| 欧美另类综合|