Android Design Pattern Test(1)

最近準(zhǔn)備抽時間學(xué)習(xí)一下MVP模式的使用嚷堡,嘗試一些新的東西卦羡,在google查了一圈,最終選定了幾篇比較好的文章,做了下從MVC到MVP的實(shí)踐绿饵,以下是一些心得與總結(jié)。

MVC

MVC全名是Model View Controller瓶颠,是模型(model)-視圖(view)-控制器(controller)的縮寫拟赊,一種軟件設(shè)計典范,用一種業(yè)務(wù)邏輯粹淋、數(shù)據(jù)吸祟、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面桃移,在改進(jìn)和個性化定制界面及用戶交互的同時屋匕,不需要重新編寫業(yè)務(wù)邏輯。其中M層處理數(shù)據(jù)借杰,業(yè)務(wù)邏輯等过吻;V層處理界面的顯示結(jié)果;C層起到橋梁的作用蔗衡,來控制V層和M層通信以此來達(dá)到分離視圖顯示和業(yè)務(wù)邏輯層纤虽。


參考博客
簡單根據(jù)MVC原則實(shí)現(xiàn)了一個demo,主要功能是輸入手機(jī)號碼绞惦,通過網(wǎng)絡(luò)查詢歸屬地逼纸。界面如下:

Screenshot

主要技術(shù)及排坑:
(1)使用Retrofit2.0 + OkHttp + fastjson實(shí)現(xiàn)網(wǎng)絡(luò)通信
(2)由于Retrofit不支持fastjson,需要自己去寫一個fastjson Converter济蝉,主要實(shí)現(xiàn)三個類(Powered by JinSen):

Custom Converter

然后需要設(shè)置一下retrofit的converter即可杰刽。

Set Converter

(3)整個MVC框架還是比較簡單的,因為Activity既是Controller又是View王滤,所以主要的工作在于Model贺嫂。
在寫Retrofit網(wǎng)絡(luò)框架的時候主要遇到的問題在于Url的定義,之前在其他文章里也看過關(guān)于Url的寫法問題淑仆,但是沒有注意涝婉,所以就被坑了好長時間。蔗怠。墩弯。

原文鏈接


是的,Retrofit2.0使用了新的URL定義方式寞射,有三種寫法渔工,之前看到過的時候還在想居然這么奇葩,然后寫的時候就犯了錯誤桥温,一直使用第三種的寫法引矩,導(dǎo)致始終報303 Found的重定向錯誤。
推薦:使用第二種寫法,不容易出錯旺韭。
(4)在排查上面錯誤的時候氛谜,也拓展了兩個知識點(diǎn):

1. Log Request And Response
在Retrofit2.0里取消了Log的功能,據(jù)說是因為之前的Log功能不夠可靠区端,所以去掉了值漫,等之后有穩(wěn)定版本了再加上。
但是OkHttp是具有Log功能的织盼,具體做法如下:

log request and response.jpg

Retrofit使用說明
推薦一下這個網(wǎng)站杨何,上面有很詳細(xì)的Retrofit2.0的時候方法,同時推薦一下他們的電子書沥邻,雖然有點(diǎn)貴危虱,但是會不斷更新,這一點(diǎn)還是非常良心的唐全。

2. 使用Charles進(jìn)行手機(jī)數(shù)據(jù)包抓取
通過打印Log沒有排查出來錯誤埃跷,然后就通過抓包軟件獲取手機(jī)全部網(wǎng)絡(luò)信息,操作也比較簡單芦瘾,設(shè)置一下代理捌蚊,手機(jī)所有的網(wǎng)絡(luò)通信就全部可以顯示出來了。

(5)MVC模式是一種比較常規(guī)的Android編程模式近弟,但是很多時候Activity/Fragment既負(fù)責(zé)頁面顯示(View)的工作缅糟,又負(fù)責(zé)邏輯控制(Controller)的工作,當(dāng)頁面比較復(fù)雜祷愉,整個Activity/Fragment文件會非常大窗宦,之前的項目里很多文件都超過了1000行,但很多東西又不容易分出去二鳄,這也是我之前一直很煩惱和困惑的地方赴涵。

Github地址:https://github.com/zhangke445566/AndroidDesignPatternTest

之后我會不斷完善這個項目,探索幾種MVP模式的寫法及優(yōu)缺點(diǎn)订讼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末髓窜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖祟同,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杨帽,死亡現(xiàn)場離奇詭異炒瘸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恃鞋,“玉大人崖媚,你說我怎么就攤上這事⌒衾耍” “怎么了畅哑?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長资锰。 經(jīng)常有香客問我敢课,道長,這世上最難降的妖魔是什么绷杜? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮濒募,結(jié)果婚禮上鞭盟,老公的妹妹穿的比我還像新娘。我一直安慰自己瑰剃,他們只是感情好齿诉,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晌姚,像睡著了一般粤剧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挥唠,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天抵恋,我揣著相機(jī)與錄音,去河邊找鬼宝磨。 笑死弧关,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的唤锉。 我是一名探鬼主播世囊,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼窿祥!你這毒婦竟也來了株憾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤晒衩,失蹤者是張志新(化名)和其女友劉穎嗤瞎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浸遗,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猫胁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了跛锌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弃秆。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡届惋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出菠赚,到底是詐尸還是另有隱情脑豹,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布衡查,位于F島的核電站瘩欺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拌牲。R本人自食惡果不足惜俱饿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望塌忽。 院中可真熱鬧拍埠,春花似錦、人聲如沸土居。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽擦耀。三九已至棉圈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間眷蜓,已是汗流浹背分瘾。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留账磺,地道東北人芹敌。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像垮抗,于是被迫代替她去往敵國和親氏捞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容