天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

解依賴與接縫

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

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

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

  最近項(xiàng)目組的同事和我討論了這樣一個(gè)滿足可測(cè)試性的問題。項(xiàng)目中需要對(duì)返回的響應(yīng)信息PlatformResponse進(jìn)行處理,這些信息會(huì)根據(jù)不同的StatusCode,得到不同的提示或出錯(cuò)信息。為了避免分支語(yǔ)句的判斷,同事利用hash table將StatusCode與提示(出錯(cuò))信息進(jìn)行了映射,然后根據(jù)當(dāng)前的StatusCode就可以返回對(duì)應(yīng)的結(jié)果。返回結(jié)果后,還需要調(diào)用外部服務(wù)對(duì)消息進(jìn)行處理,例如消息的輸出。由于之前相關(guān)的類PlatformResponse并沒有提供這一邏輯,相關(guān)服務(wù)要返回消息時(shí),直接返回了PlatformResponse對(duì)象,然后再由客戶端根據(jù)當(dāng)前的StatusCode來判斷,輸出相關(guān)的提示信息,所以同事將這些邏輯寫到了擴(kuò)展方法中,例如定義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知識(shí)庫(kù)解依賴與接縫,轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 被肉日常np高h | 97色伦图片97色伦图影院久久 | 青青草狠狠干 | 伊人久久大香线蕉电影院 | 成人高清护士在线播放 | 91亚洲 欧美 国产 制服 动漫 | 湖南张丽大战黑人hd视频 | 成人综合在线观看 | 久九九精品免费视频 | 2017年伦理片免费观看 | 黑色丝袜美腿美女被躁翻了 | 被肉日常np高h | 大学生高潮无套内谢视频 | 爽死你个放荡粗暴小淫货漫画 | 夜色伊甸园 | 国产精品高清免费网站 | 99国产在线精品视频 | 精品国产午夜福利在线观看蜜月 | 国产GV无码A片在线观看 | 苍井空教师BD在线观看全集 | 欧美精品3atv一区二区三区 | 国产自产视频在线观看香蕉 | 久久亚洲免费视频 | 袖珍人与大黑人性视频 | 欧美精品久久久久久久久大尺度 | 国产免费人成在线视频视频 | 97视频久久 | 久久理伦片琪琪电影院 | 好男人在线视频 | 国产亚洲精品久久久久久国 | 国产CHINESE HD精品 | 人妖欧美一区二区三区四区 | 人人碰国产免费线观看 | qvod影院| 九九热精品免费观看 | 在线色av | 人妻互换免费中文字幕 | 国产午夜视频在线 | 吃胸亲吻吃奶摸下面免费视频 | 久久偷拍国2017 | 91精品专区 |