moco代碼賞析三

今天看的是作者的第三次提交拳喻,這次提交并沒有添加哪些實質性的功能乙墙,而是重構了一些類和方式的命名,以及對現(xiàn)有的項目結構做了一些調整法牲。之前的實現(xiàn)方式依然存在耦合比較多的情況并且命名方式比較模糊额衙,新的實現(xiàn)方式則是創(chuàng)建了兩個新的接口RequestMatcher和ResponseHandler饮焦,這兩個接口分別代表的是輸入時參數(shù)的匹配器與返回時的結果處理器。從很直觀的看入偷,這次改動會讓一個從沒看過之前代碼的人追驴,可以簡單的通過代碼的架構和類的命名來看懂這些類的作用以及如何使用這個項目械哟。同時疏之,把之前在MocoServer中的兩個方法: withContent()和withUri()放在了Moco類中脑豹,并重命名研叫。

    public RequestSetting withContent(String requestContent) {
        return new ContentRequestSetting(this, requestContent);
    }

    public RequestSetting withUri(String uri) {
        return new UriRequestSetting(this, uri);
    }
    public static RequestMatcher eqUri(String uri) {
        return new UriRequestMatcher(uri);
    }

    public static RequestMatcher eqContent(String content) {
        return new ContentRequestMatcher(content);
    }

我認為這兩個方法確實不應該屬于一個服務器類里脱羡,暫時放在了這個程序的入口Moco我覺得只是暫時的策略处铛,后期一定會把這兩個方法重構在其他地方赖晶。


前面提到的RequestMatcher有兩個實現(xiàn)類矫渔,分別是ContentRequestMatcher類和UriRequestMatcher類啃奴,他們替代了前有的RequestSetting實現(xiàn)類腊满。并且作者將之前并沒有實現(xiàn)的match中的邏輯實現(xiàn)了扯旷,做到了根據(jù)匹配Request中的參數(shù)來組裝他的Response拯爽。談到組裝Response,作者在本次提交中钧忽,將原有的實現(xiàn)方式(在MocoHandler全部包辦)毯炮,改成了把writeToResponse()方法分離出來寫進ResponseHandler的方式逼肯,再由ResponseHandler調用不同實現(xiàn)類中的不同的writeContent()方法,這樣實現(xiàn)好處在于桃煎,我可以根據(jù)調用response()方法時篮幢,傳入的參數(shù)不同而采用不同的策略。


這一次的提交为迈,總體給人的感覺就是更加清晰了三椿,無論是項目的結構還是作者的思路,都讓我一個局外人看的更加清楚葫辐。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末搜锰,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子耿战,更是在濱河造成了極大的恐慌纽乱,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昆箕,死亡現(xiàn)場離奇詭異鸦列,居然都是意外死亡,警方通過查閱死者的電腦和手機鹏倘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門薯嗤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纤泵,你說我怎么就攤上這事骆姐。” “怎么了捏题?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵玻褪,是天一觀的道長。 經(jīng)常有香客問我公荧,道長带射,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任循狰,我火速辦了婚禮窟社,結果婚禮上,老公的妹妹穿的比我還像新娘绪钥。我一直安慰自己灿里,他們只是感情好,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布程腹。 她就那樣靜靜地躺著匣吊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上色鸳,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天侣灶,我揣著相機與錄音,去河邊找鬼缕碎。 笑死褥影,一個胖子當著我的面吹牛,可吹牛的內容都是我干的咏雌。 我是一名探鬼主播凡怎,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼赊抖!你這毒婦竟也來了统倒?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤氛雪,失蹤者是張志新(化名)和其女友劉穎房匆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體报亩,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡浴鸿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了弦追。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岳链。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖劲件,靈堂內的尸體忽然破棺而出掸哑,到底是詐尸還是另有隱情,我是刑警寧澤零远,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布苗分,位于F島的核電站,受9級特大地震影響牵辣,放射性物質發(fā)生泄漏摔癣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一服猪、第九天 我趴在偏房一處隱蔽的房頂上張望供填。 院中可真熱鬧拐云,春花似錦罢猪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春危彩,著一層夾襖步出監(jiān)牢的瞬間攒磨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工汤徽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留娩缰,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓谒府,卻偏偏與公主長得像拼坎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子完疫,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理泰鸡,服務發(fā)現(xiàn),斷路器壳鹤,智...
    卡卡羅2017閱讀 134,637評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,846評論 25 707
  • 題目1: 如何全局安裝一個 node 應用? 如果下載速度比較慢盛龄,可以使用淘寶的鏡像 install 可以縮寫成 ...
    輝夜乀閱讀 418評論 0 0
  • 家國堪幾代千秋?非汝惑名留芳誓。問古亂之由余舶,想必是,君王自求锹淌。 丈間闈事欧芽,房中快意,安可運國籌葛圃。烽火戲諸侯千扔,嬉...
    長安舊人閱讀 421評論 1 9
  • 我們的周圍不乏變故曲楚。 一夜之間,滿樹的綠葉黃了褥符。一次擁抱龙誊,一場感情散了。一句話喷楣,一個好友離去了趟大。有時候,你仿佛...
    老丁子閱讀 144評論 1 2