以APP為起點(diǎn)構(gòu)建網(wǎng)絡(luò)請(qǐng)求架構(gòu)
資料介紹
在現(xiàn)在的app,網(wǎng)絡(luò)請(qǐng)求是一個(gè)很重要的部分,app中很多部分都有或多或少的網(wǎng)絡(luò)請(qǐng)求,所以在一個(gè)項(xiàng)目重構(gòu)時(shí),我會(huì)選擇網(wǎng)絡(luò)請(qǐng)求框架作為我重構(gòu)的起點(diǎn)。在這篇文章中我所提出的架構(gòu),并不是所謂的 最好 的網(wǎng)絡(luò)請(qǐng)求架構(gòu),因?yàn)槲抑换谖疫@個(gè)app原有架構(gòu)進(jìn)行改善,更多的情況下我是以app為出發(fā)點(diǎn),讓這個(gè)網(wǎng)絡(luò)架構(gòu)能夠在原app的環(huán)境下給我一個(gè)完美的結(jié)果,當(dāng)然如果有更好的改進(jìn)意見(jiàn),我會(huì)很樂(lè)于嘗試。
關(guān)于網(wǎng)絡(luò)請(qǐng)求框架
一個(gè)好的網(wǎng)絡(luò)請(qǐng)求框架對(duì)于一個(gè)團(tuán)隊(duì)來(lái)說(shuō)是十分重要的。如果一個(gè)網(wǎng)絡(luò)請(qǐng)求框架沒(méi)有封裝好,或者是在設(shè)計(jì)上存在問(wèn)題,那么在開(kāi)發(fā)上會(huì)造成許多問(wèn)題,就拿這段代碼作為例子:
?。踠eaveAPI startWithCompletionBlockWith:^(BaseRequest *baseRequest, id responseObject) {
//check the response object
BOOL isSuccess = [leaveAPI validResponseObject:responseObject];
if (isSuccess) {
//do something.。。
}
} failure:^(BaseRequest *baseRequest) {
//do something.。。
}];
上面這段代碼存在著不少的問(wèn)題,比如把請(qǐng)求數(shù)據(jù)的判斷放到了每一個(gè)請(qǐng)求中、在leaveAPI的塊方法中再次調(diào)用leaveAPI、塊參數(shù)中的baseRequest并沒(méi)有實(shí)質(zhì)作用等等……針對(duì)這些問(wèn)題我會(huì)一一進(jìn)行修正。
不要讓其他人做請(qǐng)求數(shù)據(jù)有效與否的判斷
在上面的代碼中,對(duì)resposeObject是否有效的判斷被設(shè)計(jì)成了BaseRequest類(lèi)中的一個(gè)方法,程序員需要在調(diào)用網(wǎng)絡(luò)請(qǐng)求后,再調(diào)用該方法對(duì)responseObject進(jìn)行判斷,這樣的設(shè)計(jì)存在很大的弊端。
在實(shí)際應(yīng)用中,很多時(shí)候程序員在調(diào)用網(wǎng)絡(luò)請(qǐng)求后往往會(huì)忘記調(diào)用該方法對(duì)返回結(jié)果進(jìn)行判斷,甚至忘記了存在這個(gè)方法,自行對(duì)responseObject進(jìn)行判斷。首先這造成了大規(guī)模的代碼重復(fù),另一方面,不同程序員自己編寫(xiě)的判斷方法散落在各個(gè)請(qǐng)求中,假如app在日后更新過(guò)程中改變了這個(gè)判斷標(biāo)準(zhǔn),會(huì)給修改帶來(lái)很大困難。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
- pytorch如何构建网络模型0次下载
- 使用Raspberry Pi构建网络摄像头0次下载
- 自智网络前沿技术白皮书1次下载
- 网络架构的时钟系统——设计与验证3次下载
- 拟态通用运行环境的框架及架构设计2次下载
- 以进化算法为搜索策略实现神经架构搜索的方法15次下载
- 一种卫星空间信息网络SFC映射算法11次下载
- 一种基于多视图架构的深度卷积神经网络模型5次下载
- 一种分布式网络扫描架构和任务调度算法19次下载
- 在线社交网络的高层架构0次下载
- 优化安卓应用3G/4G网络请求能耗的方法0次下载
- 以APP为起点构建网络请求架构0次下载
- Android开发的各大网络请求库实际案例4次下载
- 利用Sakai构建网络课程管理系统的研究与实践(15次下载
- 网络互动型机械工程虚拟实验室的构建23次下载
- PyTorch神经网络模型构建过程692次阅读
- 神经网络预测模型的构建方法1053次阅读
- 神经网络架构有哪些1131次阅读
- 鸿蒙OS开发实例:【窥探网络请求】952次阅读
- 如何使用Proxyman抓取Android的https请求?2772次阅读
- 使用ESP32-S3搭建网络摄像头7624次阅读
- iOS APP架构设计2305次阅读
- 如何使用 ESP-AT实现HTTP请求1422次阅读
- 实施微服务架构:用于构建下一代云应用程序817次阅读
- 以数字音频系统为例介绍音频系统的构建4797次阅读
- 三种网络硬件架构的原理及优劣势剖析7687次阅读
- 基于RGMII接口的88E1512搭建网络通信系统23293次阅读
- 构建一个相对较小的图像识别卷积神经网络3388次阅读
- 一种新的高效神经架构搜索方法,解决了当前网络变换方法的局限性7377次阅读
- 智能AP构建协同实现WLAN架构简单智能化1930次阅读
下載排行
本周
- 1IP6823 支持 qi 認(rèn)證的無(wú)線(xiàn)充電發(fā)射控制 SOC
- 1.01 MB | 1次下載 | 免費(fèi)
- 2IP6824? 全集成QI?無(wú)線(xiàn)充電發(fā)射控制SOC
- 1.22 MB | 1次下載 | 免費(fèi)
- 3帶注入電流控制的1.8V通用SP8T-Z和2個(gè)SP4T-Z模擬開(kāi)關(guān)
- 847.62KB | 次下載 | 免費(fèi)
- 4PESD18VY1BBIF保護(hù)二極管規(guī)格書(shū)
- 4.56MB | 次下載 | 免費(fèi)
- 574HC4050緩沖器規(guī)格書(shū)
- 217.58KB | 次下載 | 免費(fèi)
- 674HC193;74HC7193二進(jìn)制加減計(jì)數(shù)器規(guī)格書(shū)
- 327.93KB | 次下載 | 免費(fèi)
- 774HC73-Q100雙JK觸發(fā)器規(guī)格書(shū)
- 220.85KB | 次下載 | 免費(fèi)
- 8ASW3410 USB3.1高速數(shù)據(jù)開(kāi)關(guān)切換規(guī)格書(shū)
- 1.39 MB | 次下載 | 免費(fèi)
本月
- 1A7159和A7139射頻芯片的資料免費(fèi)下載
- 0.20 MB | 55次下載 | 5 積分
- 2零死角玩轉(zhuǎn)STM32F103—指南者
- 26.78 MB | 41次下載 | 1 積分
- 3PIC12F629/675 數(shù)據(jù)手冊(cè)免費(fèi)下載
- 2.38 MB | 36次下載 | 5 積分
- 4PIC16F716 數(shù)據(jù)手冊(cè)免費(fèi)下載
- 2.35 MB | 18次下載 | 5 積分
- 5dsPIC33EDV64MC205電機(jī)控制開(kāi)發(fā)板用戶(hù)指南
- 5.78MB | 8次下載 | 免費(fèi)
- 6STC15系列常用寄存器匯總免費(fèi)下載
- 1.60 MB | 7次下載 | 5 積分
- 7AN-1267: 使用ADSP-CM408F ADC控制器的電機(jī)控制反饋采樣時(shí)序
- 1.41MB | 5次下載 | 免費(fèi)
- 8LP9962集成 PFC 和 和的 高壓半橋驅(qū)動(dòng)的 LLC 諧振
- 3.30 MB | 4次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935124次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73813次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評(píng)論