我们目前正在重构基于MVP的Android项目,问题是我们有两种基于MVVM + ViewModel + LiveData的方法
两种方法都具有以下架构:
请检查以下图片: https://drive.google.com/open?id=1dk1nInTNW5S1Pf26JhpN9f4wpV-bNud0
我们有一个登录方案,当用户单击登录按钮时,视图将触发ViewModel中的登录按钮,ViewModel将触发UseCase类中的登录功能。
两种方法的区别在于响应部分:
方法1: 由于我们使用协程和暂停函数,因此UseCase类中的login函数将成为暂停函数,并将响应返回给ViewModel,后者负责导航并要求View导航到主页。
方法2: UseCase类中的login函数将是一个悬浮的void函数。 UseCase类收到响应后,他将要求ViewModel显示错误消息或导航到下一页。
问题是,我们应该在哪里保留应用程序状态?在用例还是ViewModel中?哪个类负责按DDD进行导航?