【发布时间】:2020-02-17 10:44:36
【问题描述】:
我正在学习 MVVM 和 Clean Architecture。然后我发现了一些关于 MVVM + Clean Architecture 的文章,但我仍然没有了解 mvvm with clean architecture 和 mvvm without clean architecture 之间的区别。这些东西有什么总结吗?谢谢。
【问题讨论】:
标签: android mvvm clean-architecture
我正在学习 MVVM 和 Clean Architecture。然后我发现了一些关于 MVVM + Clean Architecture 的文章,但我仍然没有了解 mvvm with clean architecture 和 mvvm without clean architecture 之间的区别。这些东西有什么总结吗?谢谢。
【问题讨论】:
标签: android mvvm clean-architecture
干净的架构旨在分离各层。业务层、数据层和表示层将是独立的应用程序。因此,您将增加它们中的每一个的可重用性。 MVVM 作为设计模式应该在表示层中实现。表示层将与业务层(或领域层)交互,业务层将使用数据层来共享数据。
【讨论】:
MVVM 只是presentation layer 中干净架构的一部分。它只是一组关于如何从 UseCase 显示数据的规则。
使用干净架构的好处之一是我们可以更改presentation layer 中的设计模式,而无需更改domain layer 或用例。
因此,例如,如果我们使用 let say MVI,然后更改为 MVVM,则可以轻松顺利地完成.. :)
【讨论】:
MVVM 只是一种管理您正在使用的任何架构的视图层的技术。
简洁架构是一种组织层间通信的方式。它们不是相互排斥的
具有干净架构的 MVVM 层 代码分为三个独立的层:
表示层
在这里,与视图和动画相关的逻辑发生在这里。它使用 Model-View-ViewModel (MVVM),但您可以使用任何其他模式,例如 MVC 或 MVP
【讨论】:
据我了解:
没有干净架构的 MVVM:
______________________________________________
UI
- - - - - - - - - - - - - - - - - - - - - - -
Presenter/ViewModel (Business Logic)
______________________________________________
Repository
DataSource
______________________________________________
具有简洁架构的 MVVM:
______________________________________________
UI
Presentation Layer
Presenter/ViewModel
______________________________________________
UseCases + Entity (Business Logic) Domain/Business Layer
______________________________________________
Repository
Data Layer
DataSource
______________________________________________
【讨论】: