真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

清潔和新Android架構(gòu)的認(rèn)知訴求

一個(gè)根本性的變化即將改變Android的核心工作方式。但你為什么要關(guān)心?而且,為什么這是一件好事?讓我們來(lái)看看
Android的新架構(gòu)組件現(xiàn)已正式并固化。毫無(wú)疑問,View Models和LiveData等架構(gòu)組件將使Android開發(fā)世界中新手的生活變得更加輕松。

創(chuàng)新互聯(lián)公司主營(yíng)豐澤網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),豐澤h5重慶小程序開發(fā)公司搭建,豐澤網(wǎng)站營(yíng)銷推廣歡迎豐澤等地區(qū)企業(yè)咨詢

但是對(duì)于經(jīng)驗(yàn)豐富的開發(fā)人員來(lái)說,問題將不可避免地出現(xiàn)在新的架構(gòu)組件如何以及在何處與干凈架構(gòu)的概念一致,正如Bob叔叔所倡導(dǎo)的那樣。

你可能會(huì)問我們?yōu)槭裁匆獡?dān)心干凈的建筑?答案很簡(jiǎn)單 - 清潔架構(gòu)基于人類與軟件開發(fā)周期的關(guān)系,這意味著它歸結(jié)為一個(gè)簡(jiǎn)單而單一的“關(guān)注點(diǎn)分離”原則。清潔架構(gòu)不僅限于特定的平臺(tái)解決方案,Android Lifecycle的概念及其周圍的解決方案也是如此。

考慮到這個(gè)問題,我想看看谷歌最近的一個(gè)樣本,使用他們的架構(gòu)組件,如何符合清潔架構(gòu)的基本概念。清晰體系結(jié)構(gòu)的核心概念在圖片中進(jìn)行了總結(jié),對(duì)于任何了解這里提出的清潔體系結(jié)構(gòu)的人來(lái)說都非常熟悉:
清潔和新Android架構(gòu)的認(rèn)知訴求

清潔架構(gòu)中的核心原則

“內(nèi)圈中的任何東西都不能知道外圈中的某些東西。特別是,外圈中聲明的東西的名稱不能被內(nèi)圈中的代碼所提及。這包括函數(shù),類,變量,或任何其他指定的軟件實(shí)體?!?/p>

我拍的樣本是Google 代碼實(shí)驗(yàn)室的“帶有視圖的房間”樣本。

盡管有許多使用方法的清潔架構(gòu)實(shí)現(xiàn),如MVP,MVVM等,它們?yōu)锳ndroid空間提供了可行的解決方案,但我的問題是,如果我們能夠維護(hù)清潔架構(gòu)的核心概念,那就是:“內(nèi)部圓圈中的代碼不得提及外部圓圈中聲明的內(nèi)容的名稱“不帶任何框架,只需使用Android體系結(jié)構(gòu)組件即可。

“帶有視圖的房間”是一個(gè)簡(jiǎn)單的應(yīng)用程序,它列出了數(shù)據(jù)庫(kù)中的單詞,并允許您添加新單詞。

應(yīng)用程序中有八個(gè)類:

1.MainActivity

  1. NewWordActivity
    3.Word
  2. WordDao
    1. WordListAdapter
  3. WordRepository
  4. WordRoomDatabase
    1. WordViewModel
      沒有太大困難,我可以實(shí)現(xiàn)理想的組織,成功率約為90%:
      清潔和新Android架構(gòu)的認(rèn)知訴求

一些擔(dān)憂

在 LiveData 作為一個(gè)元素不會(huì)在組織的任何地方出現(xiàn)。雖然確實(shí) LiveData 是一個(gè)設(shè)施/機(jī)制,但它不是政策意義上的實(shí)體。

干凈的架構(gòu)說,“外圈是機(jī)制。內(nèi)圈是政策?!?在此基礎(chǔ)上,它將DB放在最外層。但是,如果不打破核心原則,我無(wú)法將DB放在外圈。

我知道這更多地表明當(dāng)前技術(shù)中的數(shù)據(jù)庫(kù)如何變得更加廣泛,而不是實(shí)現(xiàn)細(xì)節(jié)。

我唯一關(guān)注的另一個(gè)問題是,當(dāng)ViewModel 坐在UI控制器中時(shí),關(guān)注細(xì)節(jié)的分離感 ,而 ListAdapter 應(yīng)該處理顯示的數(shù)據(jù)。適配器能夠觀察任何變化的視圖模型。如果我們這樣做,那么我們可以說適配器幾乎決定了從存儲(chǔ)庫(kù)端顯示的數(shù)據(jù)。UI負(fù)責(zé)維護(hù)組件的正確UI外觀??紤]到這一點(diǎn),我在適配器中移動(dòng)了視圖模型,它向UI公開了一個(gè)額外的方法“insert(..)”。修改后的代碼在這里:ViewModel的房間。

通過這樣做,我可以更清楚地了解干凈的架構(gòu)圈子,它 LiveData 是存儲(chǔ)庫(kù)使用的內(nèi)部工具
清潔和新Android架構(gòu)的認(rèn)知訴求

結(jié)論

Android清潔架構(gòu)是一個(gè)可以在沒有大量框架的情況下實(shí)現(xiàn)的目標(biāo),只要我們專注于關(guān)注的認(rèn)知分離,以及測(cè)試設(shè)施,它在Kotlin中變得更加語(yǔ)言驅(qū)動(dòng),而不會(huì)打擾關(guān)于工具和設(shè)施的性質(zhì)。我們始終堅(jiān)持這樣的原則:“總的來(lái)說,你走的越遠(yuǎn),軟件就越高?!?更高級(jí)別僅僅意味著更具包容性,就像現(xiàn)在的數(shù)據(jù)庫(kù)實(shí)現(xiàn)一樣。我們不再關(guān)心它是什么類型的DB,只要它保持暴露的接口完好無(wú)損。由于開源的能量,我們可以通過認(rèn)知鏡頭看到今天的工具,而不是將我們的手和思想聯(lián)系起來(lái)。反過來(lái),這也使得開源移動(dòng)得更快。


文章名稱:清潔和新Android架構(gòu)的認(rèn)知訴求
鏈接URL:http://weahome.cn/article/gejsgg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部