最近学习了android架构组件的使用。我有一个关于 ViewModel
的问题:
根据架构设计指南,我们可以理解数据是整个应用的核心。 ViewModel 用于管理数据,而存储库用于从网络或数据库中获取数据。
如果你有一个只处理用户交互逻辑的UI,但是几乎不可能从网络或数据库中获取数据,那么交互逻辑代码应该放在ViewModel
或Activity中
/ fragment
。
另外一个界面,既有逻辑交互又有数据获取,交互逻辑代码应该放到ViewModel还是activity/fragment?
最佳答案
我想你指的是流行的MVP
Android 中的模式。
过去看到巨大的 Activity
很常见处理属于 Activity
的所有逻辑的类.
如果您确实指的是 MVP
, 那么您可能会喜欢采用可以与 activity
分离的方法的想法执行所谓的逻辑 presenter
, 并留下 activity
担心渲染。如果您想更进一步,您还可以创建一个行为类似于网络/数据库的类 interactor
并且仅使用它来获取数据,从且仅从 presenter
调用.
模型只是 POJO。
它是这样的:
- activity --> 告诉演示者,
hey, a button was pressed, what should I do?
- presenter --> 回应说,
activity, render that error dialog
您不必使用库来完成此操作,但如果与 dependency injection
结合使用,您会发现它会更有效。流行的框架 Dagger 等库。
关于android - 如何有效地使用 android-architecture-components?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48960199/