需求概述
在app開發(fā)過程中,在和服務(wù)器人員協(xié)作時,一般會第一時間確定數(shù)據(jù)接口的請求參數(shù)和返回數(shù)據(jù)格式
,然后服務(wù)器人員會盡快提供給客戶端可調(diào)試的假數(shù)據(jù)接口。不過有時候就算是假數(shù)據(jù)接口也來不及提供,或者是接口數(shù)據(jù)格式來回變動——很可能是客戶端展示的原因,這個是產(chǎn)品設(shè)計決定的,總之帶來的問題就算服務(wù)器端的開發(fā)進度會影響客戶端。
所以,如果可以在客戶端的正常項目代碼中,自然地(不影響最終apk)添加一種模擬服務(wù)器數(shù)據(jù)返回的功能,這樣就可以很方便的在不依賴服務(wù)器的情況下展開客戶端的開發(fā)。而且考慮一種情況,為了測試不同網(wǎng)絡(luò)速度,網(wǎng)絡(luò)異常以及服務(wù)器錯誤等各種“可能的真實數(shù)據(jù)請求的場景”對客戶端UI交互的影響,我們往往需要做很多手動測試——千篇一律!如果本地有一種控制這種服務(wù)器響應(yīng)行為的能力那真是太好了。
本文將介紹一種為客戶端項目增加模擬數(shù)據(jù)接口
功能的方式,希望能減少一些開發(fā)中的煩惱。
設(shè)計過程
下面從分層設(shè)計、可開關(guān)模擬模塊、不同網(wǎng)絡(luò)請求結(jié)果的制造
這幾個方面來闡述下模擬接口模塊的設(shè)計。
為了表達方便,這里要實現(xiàn)的功能表示為“數(shù)據(jù)接口模擬模塊”,對應(yīng)英文為MockDataApi,或簡寫為MockApi,正常的數(shù)據(jù)接口模塊定義為DataApi。
分層思想
說到分層設(shè)計,MVC、MVP等模式一定程度上就起到了對代碼所屬功能的一個劃分。分層設(shè)計簡單的目標(biāo)就是讓項目代碼更加清晰,各層相互獨立,好處不多說。
移動app的邏輯主要就是交互邏輯,然后需要和服務(wù)器溝通數(shù)據(jù)。所以最簡單的情形下可以將一個功能(比如一個列表界面)的實現(xiàn)分UI層和數(shù)據(jù)訪問層。
下面將數(shù)據(jù)訪問層表述為DataApi模塊,DataApi層會定義一系列的接口來描述不同類別的數(shù)據(jù)訪問請求。UI層使用這些接口來獲取數(shù)據(jù),而具體的數(shù)據(jù)訪問實現(xiàn)類就可以在不修改UI層代碼的情況下進行替換。
例如,有一個ITaskApi定義了方法
網(wǎng)友評論