国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu)

這篇具有很好參考價(jià)值的文章主要介紹了為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

選擇風(fēng)格(Choosing a style)

我們將依照Google在《應(yīng)用架構(gòu)指南》中推薦的最佳實(shí)踐和架構(gòu)指南來(lái)構(gòu)建OrderNow的架構(gòu)。

這些定義包括通過(guò)各層定義組件的一些Clean Architecture原則。

層次的定義(Definition of the layers)

在應(yīng)用程序中,我們將定義以下主要層次:

? 用戶界面(UI)層

? 領(lǐng)域?qū)?/p>

? 數(shù)據(jù)層

UI層(UI Layer)

這一層組合了UI元素,Views視圖(composable functions可組合函數(shù)),ViewModels和表示層的實(shí)用程序,例如格式應(yīng)用器和動(dòng)畫(huà)。 設(shè)計(jì)這一層的注意事項(xiàng)包括:

? 對(duì)于狀態(tài)處理,遵循設(shè)計(jì)原則中描述的原則。

? 對(duì)于每個(gè)屏幕,將實(shí)現(xiàn)相應(yīng)的ViewModel。

?viewmodels也將作為狀態(tài)持有者,也就是狀態(tài)管理器。
?導(dǎo)航邏輯將委托給視圖,并將依賴于APP的狀態(tài)。
?副作用應(yīng)該報(bào)告給ViewModel。
?當(dāng)配置發(fā)生變化時(shí),Views模型應(yīng)該保持它們的狀態(tài)。
?鼓勵(lì)使用stateless Views(無(wú)狀態(tài)視圖)。

為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu),Android Jetpack Compose 別裁,架構(gòu),android jetpack

領(lǐng)域?qū)?Domain Layer)

盡管這一層可以是可選的,但我建議包含它,以保持與 Clean Architecture 規(guī)定的責(zé)任劃分一致的設(shè)計(jì)。

這一層組合了被稱為 UseCases 的組件,這些組件將管理業(yè)務(wù)邏輯和所有可由 ViewModels 重用的邏輯。

這一層還作為 UI 層(UI Layer)和數(shù)據(jù)層(Data Layer)之間的橋梁。

Models 類型的組件也屬于這一層。

這些組件對(duì)表示層或領(lǐng)域?qū)邮褂玫膶?shí)體或數(shù)據(jù)結(jié)構(gòu)進(jìn)行建模。例如,在 OrderNow 中,“產(chǎn)品”和“類別”都表示模型或?qū)嶓w。

UseCases (用例)是一種設(shè)計(jì)模式,用于定義特定的業(yè)務(wù)邏輯或應(yīng)用程序功能。它們用于封裝特定的應(yīng)用程序操作,通常涉及從數(shù)據(jù)層獲取數(shù)據(jù)、處理數(shù)據(jù)以及將結(jié)果傳遞給UI層。在使用清潔架構(gòu)時(shí),UseCases 通常在領(lǐng)域?qū)又卸x并由UI層調(diào)用。為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu),Android Jetpack Compose 別裁,架構(gòu),android jetpack

?

關(guān)于這一層的設(shè)計(jì)考慮包括:

? 所有在視圖中重復(fù)的展示邏輯都可以放在UseCases (用例)中。

? 屬于此層的組件可以是無(wú)狀態(tài)的;它們是不需要臨時(shí)持久化的組件。

? UseCases (用例)執(zhí)行的操作必須是主線程安全的。

? UseCases 可以相互通信,以協(xié)調(diào)用例操作。 ? 每個(gè) UseCases 負(fù)責(zé)一個(gè)且只有一個(gè)操作。

? 每個(gè) UseCases 可能會(huì)使用一個(gè)或多個(gè)倉(cāng)庫(kù)(Repositories)。

數(shù)據(jù)層(Data Layer)

這一層組織了名為倉(cāng)庫(kù)(Repositories)的組件,它們協(xié)調(diào)和封裝了與本地和遠(yuǎn)程數(shù)據(jù)源的集成邏輯。如其名稱所示,它們遵循倉(cāng)庫(kù)模式。 這一層的其他組件包括數(shù)據(jù)源(Datasources)、映射器(Mappers)和數(shù)據(jù)傳輸對(duì)象(DTOs)。

? 數(shù)據(jù)源(Datasource):包含到外部或本地持久化源的邏輯集成。

? 數(shù)據(jù)傳輸對(duì)象(DTO):它是模型持久化實(shí)體的結(jié)構(gòu)。包含持久性機(jī)制使用的定義。為了使其他層(UI和領(lǐng)域)不繼承這些定義,這些類型的實(shí)體通過(guò)映射器轉(zhuǎn)換為應(yīng)用程序域的模型。

映射器:它們將 DTO 轉(zhuǎn)換為領(lǐng)域?qū)拥哪P蛯?shí)體。對(duì)于此層的設(shè)計(jì),建議考慮以下事項(xiàng):

? 此層可用作事實(shí)來(lái)源。

? 存儲(chǔ)庫(kù)執(zhí)行的操作必須是主安全的。

? 為每個(gè)主要實(shí)體類型定義一個(gè)存儲(chǔ)庫(kù),例如,產(chǎn)品存儲(chǔ)庫(kù)、類別存儲(chǔ)庫(kù)。

為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu),Android Jetpack Compose 別裁,架構(gòu),android jetpack

?通用架構(gòu)(General architecture)

不同集成層的通用圖類似如下:

Architecture Layers?架構(gòu)層 :

為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu),Android Jetpack Compose 別裁,架構(gòu),android jetpack

關(guān)于其他層

補(bǔ)充架構(gòu)主要層次的其他輔助層將包括:

? Main(主層):包含應(yīng)用程序的基礎(chǔ)構(gòu)件,例如 MainActivity、Application 和 ApplicationState 等等。

? Common(通用層):包含跨應(yīng)用程序的構(gòu)件,例如導(dǎo)航定義、用于其他層的實(shí)用工具和依賴管理器等等。?

關(guān)于 PortsClean 架構(gòu)的使用

建議在不同層的邊界之間包括端口,這種技術(shù)允許反轉(zhuǎn)控制,解耦在每層邊界之間通信的組件。這種方法將為設(shè)計(jì)增加更好的可維護(hù)性和適應(yīng)性。我們的示例應(yīng)用程序 (OrderNow) 將在Domain Layer 和Data layer之間添加端口。

為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu),Android Jetpack Compose 別裁,架構(gòu),android jetpack

?組織目錄(Organizing directories)

在我們的OrderNow示例中,為了簡(jiǎn)單起見(jiàn),層次將通過(guò)單個(gè)模塊中的目錄以單體方式組織。 我將把是否在后續(xù)的項(xiàng)目中決定分離各層并為每個(gè)層獻(xiàn)出一個(gè)模塊的決定留給讀者自行判斷。

通過(guò)兩個(gè)定義來(lái)進(jìn)行目錄組織:

? 在UI層,將使用按功能組織。

? 在Domain Layer(領(lǐng)域?qū)?和Data Layer(數(shù)據(jù)層),將使用按組件組織。

為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu),Android Jetpack Compose 別裁,架構(gòu),android jetpack

元素的命名和規(guī)范

對(duì)于組件命名,我們將使用以下規(guī)則:

使用后綴 只有在以下情況下才會(huì)在組件名中使用后綴:

? 包含包的名稱沒(méi)有推斷出其類型。

? 需要強(qiáng)制組件代表的結(jié)構(gòu)類型,例如,ProductRepository。

? 為了避免組件類型之間的混淆,例如,一個(gè)模型可能被命名為Category,其存儲(chǔ)庫(kù)名為 CategoryRepository。

后綴命名:

?為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu),Android Jetpack Compose 別裁,架構(gòu),android jetpack

?命名包

應(yīng)用程序包的名稱必須為小寫(xiě),不能有分隔符,也不能有駝字。

為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu),Android Jetpack Compose 別裁,架構(gòu),android jetpack

命名組件

對(duì)于組件類型UseCases的名稱,表示用例中的操作(do, get, update, save, send, delete, add,執(zhí)行、獲取、更新、保存、發(fā)送、刪除、添加)的操作被用作前綴。

為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu),Android Jetpack Compose 別裁,架構(gòu),android jetpack

命名可組合函數(shù)?

?為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu),Android Jetpack Compose 別裁,架構(gòu),android jetpack

?對(duì)于UI組件,也就是可組合函數(shù)的定義,我們將使用以下的命名規(guī)則,這些規(guī)則參考了Google在架構(gòu)指南中的文檔2?:

Screen:用于表示整個(gè)屏幕的可組合函數(shù)的后綴。?屏幕?

UI:用于composables,這些composables將視圖的狀態(tài)(UI State)與組件的圖形表示(UI Elements)結(jié)合在一起。??用戶界面

Elements:用于定義UI庫(kù)組件(Buttons, Layouts, Checkbox, TextFields ,如按鈕、布局、復(fù)選框、文本字段等)的composables的后綴,這些組件構(gòu)成了視圖。?元素

Preview:用于預(yù)覽視圖(元素)的composables的前綴。Screen和UI composables也可以被組合預(yù)覽,但由于對(duì)狀態(tài)和其他變量的依賴性,它變得更加復(fù)雜。

注意:

在構(gòu)建應(yīng)用程序時(shí),雖然定義所有的組件類型很重要,但也可能存在例外情況,不需要定義所有的組件類型,可以省略一些。具體取決于應(yīng)用程序中屏幕的復(fù)雜程度,需要決定哪些組件類型適用,哪些不適用。

本章中,我想描述在開(kāi)始實(shí)現(xiàn)之前要遵循的架構(gòu)定義。還澄清了用于組織應(yīng)用程序項(xiàng)目的規(guī)則。我必須澄清,本章中給出的定義是建議性的。讀者可以自定義或假定適合自己的約定和規(guī)則,或者在實(shí)現(xiàn)中感到舒適的約定和規(guī)則。在下一章中,我們將開(kāi)始實(shí)現(xiàn)OrderNow,首先要構(gòu)建的是它的框架,即它的主要結(jié)構(gòu)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-617615.html

到了這里,關(guān)于為Android構(gòu)建現(xiàn)代應(yīng)用——應(yīng)用架構(gòu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 為Android構(gòu)建現(xiàn)代應(yīng)用——設(shè)計(jì)原則

    為Android構(gòu)建現(xiàn)代應(yīng)用——設(shè)計(jì)原則

    為Android構(gòu)建現(xiàn)代應(yīng)用——設(shè)計(jì)原則 - 掘金? ? ? state”是聲明性觀點(diǎn)的核心 在通過(guò)Compose或SwiftUI等框架設(shè)計(jì)聲明性視圖時(shí),我們必須明確的第一個(gè)范式是State(狀態(tài))。UI組件結(jié)合了它的圖形表示(View)和它的State(狀態(tài))。UI組件中發(fā)生變化的任何屬性或數(shù)據(jù)都可以表示為狀態(tài)。例如

    2024年02月16日
    瀏覽(22)
  • 為Android構(gòu)建現(xiàn)代應(yīng)用——主體結(jié)構(gòu)

    為Android構(gòu)建現(xiàn)代應(yīng)用——主體結(jié)構(gòu)

    創(chuàng)建Screents和ViewModels 在前面的章節(jié)中,我們已經(jīng)分析了OrderNow項(xiàng)目的理論概念和我們將賦予的組織。 在本章中,我們將開(kāi)始實(shí)現(xiàn)初始結(jié)構(gòu)和模板,這將聯(lián)接每一個(gè)應(yīng)用程序的部分。 首先將添加以下帶有各自視圖模型的主屏幕: ? 首頁(yè) ? 產(chǎn)品列表 ? 產(chǎn)品詳情 ? 購(gòu)物車 添

    2024年02月15日
    瀏覽(21)
  • 一個(gè)靈活、現(xiàn)代的Android應(yīng)用架構(gòu)

    一個(gè)靈活、現(xiàn)代的Android應(yīng)用架構(gòu)

    學(xué)習(xí)Android架構(gòu)的原則:學(xué)習(xí)原則,不要盲目遵循規(guī)則。 本文旨在通過(guò)示例演示實(shí)際應(yīng)用:通過(guò)示范Android架構(gòu)來(lái)進(jìn)行教學(xué)。最重要的是,這意味著展示出如何做出各種架構(gòu)決策。在某些情況下,我們會(huì)遇到幾個(gè)可能的答案,而在每種情況下,我們都會(huì)依靠原則而不是機(jī)械地記

    2024年02月15日
    瀏覽(17)
  • Jetpack Compose: Hello Android

    Jetpack Compose: Hello Android

    Jetpack Compose 是一個(gè)現(xiàn)代化的工具包,用于使用聲明式方法構(gòu)建原生 Android UI。在本博文中,我們將深入了解一個(gè)基本的 “Hello Android” 示例,以幫助您開(kāi)始使用 Jetpack Compose。我們將探討所提供代碼片段中使用的函數(shù)和注解。 在深入代碼之前,請(qǐng)確保您已經(jīng)準(zhǔn)備好使用 Jetpac

    2024年03月10日
    瀏覽(101)
  • 如何是Jetpack Compose構(gòu)建漂亮的應(yīng)用程序

    如何是Jetpack Compose構(gòu)建漂亮的應(yīng)用程序

    Jetpack compose 是在 Android 上構(gòu)建 UI 的未來(lái)。 如果您完全不熟悉 android 并且不知道 Jetpack Compose 是什么——它基本上是一種構(gòu)建本機(jī)用戶界面的新方法。 Jetpack compose官方站點(diǎn) https://developer.android.com/jetpack/compose 在本文中,您將了解如何使用 Jetpack Compose 遵循最佳實(shí)踐進(jìn)行 UI 開(kāi)發(fā)

    2024年02月03日
    瀏覽(21)
  • Android Jetpack Compose — Slider滑動(dòng)條

    Android Jetpack Compose — Slider滑動(dòng)條

    ? ? ? ? 在Android Jetpack Compose中,Slider(滑動(dòng)條)是一個(gè)常用的用戶界面控件,它允許通過(guò)滑動(dòng)條來(lái)選擇一個(gè)范圍或數(shù)值。Slider控件非常適用于調(diào)整音量、亮度、進(jìn)度等需要連續(xù)調(diào)整的場(chǎng)景。 一、Slider的屬性 ????????Slider是Android Jetpack Compose中的一個(gè)控件,用于實(shí)現(xiàn)滑動(dòng)條

    2024年02月11日
    瀏覽(93)
  • 探索Android Jetpack Compose的Surface組件

    探索Android Jetpack Compose的Surface組件

    隨著聲明性 UI 框架 Jetpack Compose 的出現(xiàn),Android 開(kāi)發(fā)變得更加簡(jiǎn)潔和直觀。在這篇博客中,我們將深入探討其中的一項(xiàng)基本構(gòu)建塊 —— Surface 組件,了解它如何影響 UI 的顯示和設(shè)計(jì)。 一、Jetpack Compose和Surface組件 二、Surface組件的基本使用 三、影響Surface的屬性 一、Jetpack Co

    2024年02月11日
    瀏覽(95)
  • Android Jetpack Compose之RadioGroup的使用

    Android Jetpack Compose之RadioGroup的使用

    Android Jetpack Compose是一個(gè)現(xiàn)代化的UI工具包,幫助開(kāi)發(fā)者以聲明式的方式構(gòu)建出美觀且功能強(qiáng)大的Android應(yīng)用。在本文中,我們將詳細(xì)介紹其中的一個(gè)重要組件—— RadioGroup 。 一. RadioGroup簡(jiǎn)介 Jetpack Compose中并沒(méi)有像傳統(tǒng)View系統(tǒng)中那樣直接提供 RadioGroup ,但我們可以很方便地通

    2024年02月06日
    瀏覽(101)
  • Android筆記(七)Android JetPack Compose組件搭建Scaffold腳手架

    Android筆記(七)Android JetPack Compose組件搭建Scaffold腳手架

    在去年2022年曾發(fā)布一篇關(guān)于腳手架的文章:“Android JetPack Compose組件中Scaffold的應(yīng)用” 。但是Android的版本從12變更到13及以上版本,導(dǎo)致一些細(xì)節(jié)的實(shí)現(xiàn)存在不同。在本文中,將從頭開(kāi)始介紹整個(gè)腳手架的搭建過(guò)程。 在Android Studio(版本是Graffie)中新建模塊,選擇“Empty Activ

    2024年02月04日
    瀏覽(92)
  • Android Jetpack Compose中使用字段驗(yàn)證的方法

    Android Jetpack Compose中使用字段驗(yàn)證的方法

    數(shù)據(jù)驗(yàn)證是創(chuàng)建健壯且用戶友好的Android應(yīng)用程序的關(guān)鍵部分。隨著現(xiàn)代UI工具包Jetpack Compose的引入,處理字段驗(yàn)證變得更加高效和直觀。在這篇文章中,我們將探討如何在Android應(yīng)用中使用Jetpack Compose進(jìn)行字段驗(yàn)證。 字段驗(yàn)證是確保用戶在各種輸入字段中輸入的數(shù)據(jù)符合特定

    2024年02月11日
    瀏覽(98)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包