在一開始接觸代碼時(shí)选脊,對(duì)架構(gòu)這東西,真的根本沒(méi)有意識(shí)褒搔,也沒(méi)有特地去了解它阶牍,就是只有在學(xué)校時(shí)聽過(guò)MVC,即model-view-Controller星瘾。但在實(shí)際的項(xiàng)目中走孽,我就沒(méi)有根據(jù)這個(gè)去寫,純粹就是為了完成業(yè)務(wù)×兆矗現(xiàn)在回頭看自己當(dāng)時(shí)前寫的代碼真的是慘不忍睹磕瓷,真的是業(yè)務(wù)需要,想到哪寫到哪念逞,重復(fù)代碼多困食,邏輯交叉多,層次亂...( ̄◇ ̄;) 那時(shí)候的代碼真的是像個(gè)流浪漢翎承。
隨著深入了解代碼硕盹,知道這水也不淺,慢慢摸索叨咖,在網(wǎng)上看了許多架構(gòu)方面的資料莱睁,如MVC待讳、MVVM等芒澜,也對(duì)自己開發(fā)中的項(xiàng)目做了大概分析和總結(jié)仰剿。畫了以下的app的層次架構(gòu)圖:
對(duì)app 我主要分了這5個(gè)大層 appService、Controller痴晦、appSetting南吮、The third party和resources。
其中最最重要的層次是appService和Controller誊酌,appService提供app所需的基本服務(wù)部凑,而Controller是界面,這兩個(gè)層相互作用碧浊。
對(duì)Controller涂邀,很多人都有做架構(gòu)。這里也采用網(wǎng)上比較流行的幾個(gè)詞箱锐,進(jìn)行功能來(lái)分**
presenter(頁(yè)面邏輯處理)
interactor(頁(yè)面間的交互)
mainView(頁(yè)面視圖self.view)
還有可能視圖需要的model(結(jié)構(gòu)轉(zhuǎn)換)和類中一些ConstDefine(常量的定義)比勉。
**
前3個(gè)模塊之間通過(guò)protocol可以互相作用。這樣模塊之間的分工明確驹止,耦合度也小浩聋。
對(duì)架構(gòu)還不是非常自信,個(gè)人感覺(jué)臊恋,這樣劃分應(yīng)該還行吧衣洁,實(shí)踐下來(lái)這個(gè)模式還是很可靠的,開發(fā)效率也能提高抖仅,條理也很清楚的坊夫,而且安卓開發(fā)也是適用這種結(jié)構(gòu)的,我想這張圖抵得過(guò)很多東西了撤卢。