四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

解依賴與接縫

  接縫(seam)是Michael C. Feathers提出的概念。Feathers在Working Effectively with Legacy Code一書中對接縫的定義如下:

接縫,顧名思義,就是指程序中的一些特殊的點,在這些點上你無需作任何修改就可以達(dá)到改動程序行為的目的。

  “接縫”這個詞語不太好理解,根據(jù)我的理解,大約還是依賴點的含義。通過事先找到依賴點,并采取一定方式解除依賴,就能夠改善代碼質(zhì)量,尤其是針對遺留代碼而言。準(zhǔn)確而言,我們尋找接縫以及解依賴,就是為了代碼能夠具有好的可重用性與可擴展性,尤其是當(dāng)我們能解除對其他外部服務(wù)的依賴時,可以帶來程序的可測試性。

  最近項目組的同事和我討論了這樣一個滿足可測試性的問題。項目中需要對返回的響應(yīng)信息PlatformResponse進行處理,這些信息會根據(jù)不同的StatusCode,得到不同的提示或出錯信息。為了避免分支語句的判斷,同事利用hash table將StatusCode與提示(出錯)信息進行了映射,然后根據(jù)當(dāng)前的StatusCode就可以返回對應(yīng)的結(jié)果。返回結(jié)果后,還需要調(diào)用外部服務(wù)對消息進行處理,例如消息的輸出。由于之前相關(guān)的類PlatformResponse并沒有提供這一邏輯,相關(guān)服務(wù)要返回消息時,直接返回了PlatformResponse對象,然后再由客戶端根據(jù)當(dāng)前的StatusCode來判斷,輸出相關(guān)的提示信息,所以同事將這些邏輯寫到了擴展方法中,例如定義PlatformResponseHelper靜態(tài)類:

public static class PlatformResponseHelper {
   
private static HashTable<String,String> messageMapping = //此處略
    public static void Output(this PlatformResponse response) {
        ServiceLocator.Lookup
<IMessageWriter>.Write(messageMapping[response.StatusCode]);
    }
}

it知識庫解依賴與接縫,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 阿尔法变频器说明书| 小泽电影| 九一八大案纪实| 乱世危情| 雪天使演员表介绍| 豪斯医生第六季| 小娥| 极寒之城在线观看高清完整| 第九区电影免费观看完整版 | 张静初吴彦祖演的门徒| 拔萝卜电视剧免费观看全集在线播放下载| 男微信头像| 夜半2点钟| 武装少女免费观看| 等着你电影韩版| 大学生做爰视频直播| 好好热视频| 麻豆视频网站| 心经般若波罗蜜多心经全文 | 李玟雨| chinese国产xxx实拍| 越南一级毛片免费| 第一财经在线直播电视| 太子传说| 三夫 电影| https://www.douyin.com| tvb直播| 大学英语u校园答案| 吉泽明步 番号| 明日花绮罗| 10000个常用人名| 回到十八岁| 红色诗配画| 快乐星球演员表| 02j331| 男骑女| 北京卫视今天全部节目表| 电影1921| 舔了师兄十年| 祝福语生日| 公主抱的图片|