人生处万类,知识最为贤。这篇文章主要讲述使用Android MVP Clean Architecture实现交互者相关的知识,希望能为你提供帮助。
我正在构建一个android应用程序,并希望以“干净架构”为基础,类似于以下作者的建议:
- Fernando Cejas - Architecting Android…The clean way?
- Dario Mili?i? - A detailed guide on developing Android apps using the Clean Architecture pattern
- Romain Piel - Ingedients for a healthy Android Architecture
- Uncle Bob - The Clean Architecture
- Hannes Dorfmann - Mosby Library
- Pedro Vicente Gómez Sánchez - Effective Android UI
- David Guerrero - intro to a cleaner android architecture: the mvp pattern
- Patryk Poborca - Clean Architecture & Testing
- Fragment实现了View并创建了一个Presenter。
- Presenter通过View界面引用Fragment。
- Presenter为要呈现的数据实现Interactor.Callback接口
- Presenter创建并启动Interactor。
- Interactor获取和更新数据以在存储库的后台线程中执行业务逻辑。
- Interactor为Repository中的DB / Server数据实现Repository.Callback。
- Interactor在存储库中注册所需数据的更新。
我主要关注的是Interactors / UseCases的实现及其与Presenters(MVP)或ViewModel(MVVM)的关系。
问题:计划让Interactor首先获取显示所需的所有业务对象(BO)。从数据层同步完成提取,并且每个接收到的BO都指向Presenter。这会导致延迟,直到视图中显示所有数据。
此外,它注册其感兴趣的BO的更新(与之前提取的相同),以通过演示者不断更新视图。
因此,我正在寻找如何在我的案例中设置Interactor的指南。上面提到的实现有一个任务,然后完成它,并且可以关闭Interactor后台线程。
在我的情况下,Interactor从数据层注册更新并等待处理它们,然后将数据发布到Presenter UI线程,因此只要有演示者监听就行。
这个功能是不同的,我正在寻找一个良好的做法,使其与“干净的架构”一起工作。
答案因此,如果我理解您的问题,您的担忧或怀疑是因为您的Interactor不会执行任务然后完成,但是在操作完成之前将会订阅或监听。
在我看来,完全没问题,Interactor实现了一个用例,并且在您的程序中异步请求是一个用例,如果它需要时间并且是异步任务或是同步操作也无关紧要。
它仍然是一个用例,Presenter将实例化Interactor,当它完成时,它将发回操作的结果。只要您保持模块化并且Presenter和Interactor没有直接依赖关系,但它们通过间接进行通信,那就完全没问题了。
推荐阅读
- Android中的MVVMCross绑定不起作用
- Android登录屏幕(双向绑定EditText和TextView)
- 没有Dagger2的Android Kotlin MVVM结构
- android viewmodels之间的inter通信
- 如何从Xamarin Android Activity中调用MvxViewModel()
- Google Apps脚本(表格形式数据处理,如果某些单元格为空,则删除行,同时维护某些列)
- 如何下载以前保存的Google Apps脚本修订版()
- Google App Script在doc中显示提示,但未使用电子表格权限
- 某些Google幻灯片AppScript是否已记录但不受支持()