Android 干净的体系结构—在使用存储库模式和用例刷新缓存数据的同时获取缓存数据

Android 干净的体系结构—在使用存储库模式和用例刷新缓存数据的同时获取缓存数据,android,design-patterns,repository-pattern,use-case,clean-architecture,Android,Design Patterns,Repository Pattern,Use Case,Clean Architecture,我有一个关于最佳实践的问题。我正试图在一个使用MVVM的示例应用程序中应用干净的体系结构。我的问题是,如果ViewModel应该调用用例,而不是直接调用存储库(它可以访问数据库和API),但我想在刷新信息时显示缓存的结果,那么如果ViewModel使用的是用例而不是存储库,它应该如何访问缓存的数据 我读过,但我不确定哪种方式是实现这种行为的最佳方式。考虑到关注点的分离,我喜欢使用decorator模式实现缓存。根据您的具体实现,存储库或用例交互器周围的装饰器可能是一个解决方案。但是这里的视图直接

我有一个关于最佳实践的问题。我正试图在一个使用MVVM的示例应用程序中应用干净的体系结构。我的问题是,如果ViewModel应该调用用例,而不是直接调用存储库(它可以访问数据库和API),但我想在刷新信息时显示缓存的结果,那么如果ViewModel使用的是用例而不是存储库,它应该如何访问缓存的数据


我读过,但我不确定哪种方式是实现这种行为的最佳方式。

考虑到关注点的分离,我喜欢使用decorator模式实现缓存。根据您的具体实现,存储库或用例交互器周围的装饰器可能是一个解决方案。

但是这里的视图直接使用ViewModel,但是如果您使用装饰器模式,那么存储库将不得不使用一个方法从缓存中检索信息,不是吗?这就是初始化的用例,当您第一次想要获取缓存数据时,装饰器的接口不应该改变。缓存存储库总是返回缓存的数据。缓存装饰器的实现可能依赖于外部缓存实现。