moh*_*ssa 4 architecture model-view-controller mvp android mvvm
我问这个问题是为了了解社区如何为 android 平台中的每个项目选择正确的架构,以便我可以更好地了解我是否走在正确的道路上。我已经是一名经验丰富的开发人员,我已经体验并实现了大部分 Android 的主要架构模式(即:MVC、MVP、MVVM...)。
我的问题是,作为 Android 开发人员或 Android 应用程序架构师,我如何根据 MVC、MVP 和 MVVM 之间的应用程序要求来决定我应该基于哪种架构模式构建我的下一个应用程序。
提前致谢。
好吧,这就是我的做法:
MVC:如果你说的是在你的应用程序中只使用简单的活动和片段,没有 Dagger,没有任何 DI,没有层,我不会在任何时候推荐这个。除非您的 App 只是一个 Activity 和一个屏幕,否则您应该始终使用将您的 App 分成多个层的架构。除非您正在构建一个非常小的项目,否则仅使用 SDK 中的类构建的老式 Android MVC 架构是不合适的。
MVP:如今 MVP 架构是最稳定的架构之一,在实现它时没有太多的猜测,它已经在任何地方得到了很好的定义。简而言之,您只需要您的 UI(片段/活动)、将在该 UI 中实现的视图接口以及将用作演示者的回调、演示者的接口、演示者的实现、存储库、存储库接口和用例或交互器。MVP 架构中的所有内容都被很好地定义,所有层都彼此分离,通信机制通常通过回调接口完成。
MVVM:这绝对是将来默认使用的架构(我认为 1 年最高)。我们使用 MVVM 架构去掉了很多样板代码。通过使用 LiveData,层之间的通信要简单得多。创建新屏幕时不需要定义 500 个组件,就像在 MVP 中一样。
多模块架构 vs 单模块架构:MVVM 和 MVP 都可以实现多模块架构或单模块架构。我认为这个选择甚至比在 MVVM 和 MVP 之间选择更重要。如果你知道你的应用程序将有一个庞大而复杂的业务逻辑,比如某种社交网络应用程序,那么你应该使用多模块架构,这将允许你将功能分成模块,构建时间(如果模块引用和依赖注入正确完成)将是线性的,它将帮助您与您的团队舒适地工作。如果您选择单个模块架构,您需要记住,随着您添加新库和新功能,构建时间会增加。如果您知道项目对于多模块架构来说不够复杂,那么这是您正确的选择。如果您在 MVP/MVVM 架构下将您的课程组织得井井有条,您总是可以将您的单模块项目转变为多模块项目。
我曾在一些项目中工作过,我立即选择了多模块架构,因为我知道该项目将具有很多功能。但是我的第一个想法是始终使用 MVP 架构,Kotlin 的单模块,如果您将类组织得井井有条,您始终可以将项目移动到多模块架构。
MVVM 也非常好,但我从来没有在使用多模块架构和 MVVM 的项目中工作过,我不确定在 UI 的 xml 中使用数据绑定进行更改是否会干扰项目中的其他开发人员。我仍然需要尝试一下。
TL;DR:MVP 是目前最好的选择,记住让所有架构组件保持整洁,每个组件的接口和实现都是分开的。MVVM 绝对是未来,但我不会将它用于大型多模块项目,如果您将它用于单模块项目是完全没问题的。
如果您想查看一些架构示例,请查看我的 repo:
如果您有任何其他问题,请告诉我。
| 归档时间: |
|
| 查看次数: |
831 次 |
| 最近记录: |