董國(guó)正
摘 要:隨著移動(dòng)應(yīng)用技術(shù)的廣泛應(yīng)用,系統(tǒng)架構(gòu)設(shè)計(jì)為實(shí)現(xiàn)一套有針對(duì)性功能且具有高性能、易于擴(kuò)展、具有一定程度上的可復(fù)用性等特性的移動(dòng)APP提供了重要保證,為改善公司軟件質(zhì)量,降低軟件開(kāi)發(fā)和維護(hù)成本,縮短軟件開(kāi)發(fā)工期,提高軟件重用率,為公司發(fā)展奠定了技術(shù)基礎(chǔ),該文描述了其中一種符合上述特性的架構(gòu)設(shè)計(jì)理念。
關(guān)鍵詞:架構(gòu) 設(shè)計(jì) 移動(dòng)端
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2016)03(b)-0017-02
1 概述
1.1 目的
為改善公司軟件質(zhì)量,降低軟件開(kāi)發(fā)和維護(hù)成本,縮短軟件開(kāi)發(fā)工期,提高軟件重用率,促使公司軟件開(kāi)發(fā)和項(xiàng)目管理水平更上一層樓,形成具有行業(yè)特色的技術(shù)體系和企業(yè)標(biāo)準(zhǔn),為公司發(fā)展奠定技術(shù)基礎(chǔ),研究、探索、建立該開(kāi)發(fā)規(guī)范(以下簡(jiǎn)稱規(guī)范)。
該規(guī)范實(shí)施后,公司所有的軟件產(chǎn)品、定制軟件開(kāi)發(fā)和軟件維護(hù)項(xiàng)目必須嚴(yán)格執(zhí)行。
1.2 原則
1.2.1 簡(jiǎn)單、有效
軟件應(yīng)用架構(gòu)、數(shù)據(jù)處理過(guò)程和交互界面力求簡(jiǎn)單、清晰和有效,不過(guò)多追求新技術(shù)和技巧的應(yīng)用。
1.2.2 標(biāo)準(zhǔn)、可重用
應(yīng)用架構(gòu)、數(shù)據(jù)處理過(guò)程和交互界面標(biāo)準(zhǔn)、規(guī)范和可重用是必須堅(jiān)持的原則。嚴(yán)格劃分業(yè)務(wù)相關(guān)和業(yè)務(wù)無(wú)關(guān)部分,業(yè)務(wù)無(wú)關(guān)部分必須實(shí)現(xiàn)標(biāo)準(zhǔn)化。
1.2.3 業(yè)務(wù)邊界明確
明確軟件功能的業(yè)務(wù)邊界。嚴(yán)禁業(yè)務(wù)邊界不清晰,越界操作數(shù)據(jù),不同業(yè)務(wù)混合的情況出現(xiàn)。各不同邊界之間的數(shù)據(jù)交換可通過(guò)標(biāo)準(zhǔn)接口進(jìn)行操作;要絕對(duì)保證離開(kāi)業(yè)務(wù)邊界數(shù)據(jù)的合法性和合理性,嚴(yán)禁非法和冗余數(shù)據(jù)進(jìn)入下一個(gè)業(yè)務(wù)邊界。
1.2.4 數(shù)據(jù)處理后臺(tái)化
嚴(yán)禁在客戶端進(jìn)行數(shù)據(jù)處理。一般情況下,采用后臺(tái)數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程進(jìn)行數(shù)據(jù)處理;特殊情況下,可采用引擎進(jìn)行數(shù)據(jù)處理。
2 架構(gòu)規(guī)范
安卓開(kāi)發(fā)架構(gòu)總體分為基礎(chǔ)框架和系統(tǒng)業(yè)務(wù)兩大部分,(見(jiàn)圖1)。
其中基礎(chǔ)框架包含公共訪問(wèn)類(如:數(shù)據(jù)庫(kù)操作接口、數(shù)據(jù)庫(kù)操作實(shí)現(xiàn)類、網(wǎng)絡(luò)提交封裝類)、工具類(如:文件訪問(wèn)工具類、二維碼掃描工具類)、框架基礎(chǔ)配置文件和其他第三方工具類等內(nèi)容,框架部分可持續(xù)擴(kuò)展功能封裝類,供系統(tǒng)業(yè)務(wù)模塊調(diào)用。
系統(tǒng)業(yè)務(wù)中將具體系統(tǒng)的每個(gè)業(yè)務(wù)模塊拆分成獨(dú)立包,并嚴(yán)格采用簡(jiǎn)單三層應(yīng)用架構(gòu),既展現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)操作層,各層之間界限清晰(見(jiàn)圖2)。
3 開(kāi)發(fā)框架規(guī)范詳細(xì)說(shuō)明
3.1 UI展現(xiàn)層規(guī)范
3.1.1 規(guī)范說(shuō)明
展現(xiàn)層進(jìn)行數(shù)據(jù)展示、數(shù)據(jù)采集、數(shù)據(jù)合理性和合法性校驗(yàn)操作。
(1)數(shù)據(jù)的合法性指數(shù)據(jù)表示對(duì)象屬性對(duì)數(shù)據(jù)類型的限制;而數(shù)據(jù)合理性指具體業(yè)務(wù)對(duì)數(shù)據(jù)取值范圍的限制。
(2)一般情況下,數(shù)據(jù)的合理性在{提交|保存|確定}按鈕的點(diǎn)擊事件中處理,而數(shù)據(jù)的合法性在數(shù)據(jù)輸入域焦點(diǎn)離開(kāi)時(shí)進(jìn)行校驗(yàn)。
3.1.2、規(guī)范詳細(xì)
UI界面所對(duì)應(yīng)的java實(shí)現(xiàn)類中,只包含如下及部分內(nèi)容:變量定義、初始化控件、事件綁定、調(diào)用接口和更新UI五部分。
(1)變量定義。
定義界面控件或其他成員變量。
(2)初始化控件。
初始化界面控件。
(3)事件綁定。
為界面控件綁定事件。
(4)調(diào)用接口。
設(shè)置接口參數(shù):傳遞數(shù)據(jù)、解析方法名稱(業(yè)務(wù)層的實(shí)現(xiàn)方法)、更新UI的方法。
(5)更新UI。
根據(jù)接口返回的數(shù)據(jù)更新UI界面。
3.2 業(yè)務(wù)控制層規(guī)范
3.2.1 規(guī)范說(shuō)明
業(yè)務(wù)邏輯層為,定義解析接口數(shù)據(jù)的邏輯方法,向上返回解析后的Bean數(shù)據(jù),每個(gè)業(yè)務(wù)模塊定義自己的業(yè)務(wù)類。
3.2.2 規(guī)范詳細(xì)
各個(gè)模塊業(yè)務(wù)類繼承BaseService類,并重寫getBean方法,并在類中定義本模塊的解析方法。
3.3 數(shù)據(jù)操作層規(guī)范
3.3.1 規(guī)范說(shuō)明
數(shù)據(jù)操作層包含:數(shù)據(jù)表映射對(duì)象(bean)、數(shù)據(jù)庫(kù)操作公共類和數(shù)據(jù)庫(kù)表基礎(chǔ)(增、刪、該、查)操作方法、SQL語(yǔ)句執(zhí)行方法、以功能調(diào)用的方式向業(yè)務(wù)邏輯層提供數(shù)據(jù)操作服務(wù)。
3.3.2 規(guī)范詳細(xì)
(1)SQL構(gòu)造類。
對(duì)應(yīng)表字段生成SQL構(gòu)造類SqlBuilder,繼承基礎(chǔ)抽象類ATableBase,并初始化表名與列集合。
(2)SQL控制類。
對(duì)應(yīng)表字段生成SQL控制類,重寫增、刪、改、查方法。
(3)前臺(tái)調(diào)用。
4 基礎(chǔ)規(guī)范
基礎(chǔ)操作是指應(yīng)用軟件中基本的操作過(guò)程,包括啟動(dòng)、登錄和更新3個(gè)過(guò)程,具體描述如下。
4.1 啟動(dòng)
App啟動(dòng)后,首先判斷是否啟動(dòng)歡迎頁(yè),在進(jìn)入登錄頁(yè)之前,將推送等第三方服務(wù)進(jìn)行注冊(cè)。
4.2 登錄
(1)判斷當(dāng)前是否已連接網(wǎng)絡(luò),如果網(wǎng)絡(luò)已連接則可進(jìn)行登錄接口。
(2)記錄是否為第一次登錄,用于判斷是否啟動(dòng)歡迎頁(yè)。
(3)判斷是否保存登錄密碼,是否下次自動(dòng)登錄(跳過(guò)登錄頁(yè)直接進(jìn)入主界面)。
(4)登錄成功后啟動(dòng)App內(nèi)部服務(wù)(輪詢消息服務(wù)或內(nèi)外網(wǎng)絡(luò)切換服務(wù)等)。
4.3 更新
登錄成功后,App自動(dòng)訪問(wèn)更新接口,判斷是否有版本更新。
該系統(tǒng)架構(gòu)是程序設(shè)計(jì)人員從實(shí)際應(yīng)用及設(shè)計(jì)經(jīng)驗(yàn)的角度出發(fā),提出了移動(dòng)端設(shè)計(jì)的基本理念,同時(shí)歸納總結(jié)并比較其他的設(shè)計(jì)模式和信息架構(gòu)提出的優(yōu)化方案,旨在幫助設(shè)計(jì)、產(chǎn)品、開(kāi)發(fā)相關(guān)人員更好地思考移動(dòng)端設(shè)計(jì)。
參考文獻(xiàn)
[1] 李寶智.淺談移動(dòng)應(yīng)用的架構(gòu)設(shè)計(jì)[J].電腦與電信,2008(5):52-53.
[2] 任捷怡.基于移動(dòng)終端設(shè)備的移動(dòng)學(xué)習(xí)系統(tǒng)的研究與實(shí)現(xiàn)[D].西南交通大學(xué),2012.
[3] 莫嬌清.移動(dòng)學(xué)習(xí)系統(tǒng)開(kāi)發(fā)技術(shù)的探索與研究[D].華東師范大學(xué),2009.