Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android 設計隨便說說之簡單實踐(合理組合),android隨便說說

Android 設計隨便說說之簡單實踐(合理組合),android隨便說說

編輯:關於android開發

Android 設計隨便說說之簡單實踐(合理組合),android隨便說說


上一篇(Android 設計隨便說說之簡單實踐(模塊劃分))例舉了應用商店設計來說明怎麼做模塊劃分。模塊劃分主要依賴於第一是業務需求,具體是怎麼樣的業務。應用商店則包括兩個業務,就是向用戶展示applist,和下載app。第二是運行環境,在Android平台,有androidsdk提供socket等API支持。因此將模塊大體換發了5個模塊。(當然了圖片加載可以額外提出,用開源組件去做,但是這裡為了說明如何設計,暫不提到。還有下載也可以利用開源組件)分別是如下:

模塊1 UI模塊,負責展示信息和用戶操作,主要類,RecommendActivity 負責數據展示和接受用戶操作。RecommendInterface,負責底層數據回調。(這裡只是舉例,下載的就不在提及)

 

這三個類之間的調用關系如下:(我的viso貌似沒有激活部分功能不能用只能口述了)

1 在RecommendActivity的onCreate裡面初始化RecommendInterface實例RecommendBase實例。並將RecommendInterface注入到RecommendBase裡面。

2 RecommendActivity隨後給RecommendBase發送指令調用getPageViewData等方法請求數據。

3 當用戶點擊下載。gotoDownLoadApp的是時候,RecommendBase開始調用startDownloadApp。

好了UI模塊的調用流程大體到這裡。

模塊2 調度模塊。負責整體業務調度。主要的類包括如下:

 

巨復雜。不過我們繼續理一下各個類調用的關系。

1 初始化該模塊就是初始化Controller。Controller初始化ControllerDownLoadAppInfosInterface, 和ControllerBase。Controller將ControlelrDownLoadAppInfosInterface注入到ControllerBase裡面。controllerBase初始化的時候初始化ControllerDownLoadAppInterface。

2 關鍵點,UI模塊如何和調度模塊交互。

     2.1   RecommendBase裡面初始化Controller和ControllerUIInterface。並將RecommendInterface注入到ControlelrUiInterface裡面。

    2.2   當RecommendActivity接收到用戶指令時,RecommendBase接收到指令調用Controller.而當異步的結果出來時,ControllerUIInterface 調用RecommendInterface。並且由RecommendInterface 將UI界面更新給用戶。(由此可見消息是從RecommendBase循環了一圈。)

3 頁面數據加載。Controller接收到RecommendBase來的指令後調用ControllerBase啟動加載模板和數據getViewDataByTempID。當底層獲取到Temp和Data的是時候,會通知到ControlelrDownLoadAppInfosInterface, 這個接口在回調Controller。 Controller調用CreateViewData。之後會調用ControllerUIInterface調用將數據給到UI。

還有下載過程。這裡就不在推演了。但是主要的是要看模塊間怎麼調用,也即是說怎麼合理組合。

會發現,上層業務和自己的依賴接口是一套全面的完整的業務。而調度層也是完成了一套完整的業務。

第三個模塊,數據解析模塊,負責網絡的applist數據和模板解析並組合。

關鍵點,如何和調度模塊交互

在調度層的ControllerBase裡面初始化該類DataWorkManager, 調度層有了模板和app數據後,調用setData,然後在調用getViewDataBytempId就可以或的模板數據。

也就是說,在調度層的依賴類裡面,初始化自己的接口,並且根據依賴類的方法來實現業務。

但是這個是一個業務單元,不能實現整體業務。

第四個模塊,網絡請求模塊。

關鍵點,如何和調度層交互。

首先在ControllerBase裡面初始化NetTaskManager和NetTaskResultListener。並且ControllerDownLoadAppinfosInterface注入到NetTaskResultListener。

然後開始調用downLoadTemplateById()。異步的,結果由NetTaskResultListener反饋給ControllerDownLoadAppinfosInterface。由ControllerDownLoadAppinfosInterface來處理這個消息。

 模塊5 下載模塊,還需要說麼?我想不必了。

其實合理組合就看你在模塊之間如何調度了。模塊之所以提供接口,是因為第一,他的模塊不需要其他模塊所關心的。只要調用它的接口即可。第二,如果他的實現出現問題,問題解決也必然在這個模塊裡面。不會需要其他地方的修改。因此原則上無論模塊如何改變,但不允許接口改變。

每個模塊都有自己的依賴類,但是如果其他模塊有類似的實現,則提供的接口必然和前者模塊的依賴做出一個適配來實現無縫連接。上面的例子都是很簡單的。基本上沒有太多的需要依賴和接口之間的適配,但是實際工作中多著去了。

最後,很抱歉的說,上面的例子多有纰漏,很多地方只是說明說的很簡單,很粗糙,有冗余,甚至有錯。僅僅希望能有所獲益。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved