Closed. This question is opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
4年前关闭。
Improve this question
我正在VIPER Architectural pattern的背景下寻找该问题的答案-
如果您的应用程序同时处理
案件
a)
b)
c)
在哪里
a)
b)
c)
编辑
可能没有确定的解决方案。但任何输入将不胜感激。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
4年前关闭。
Improve this question
我正在VIPER Architectural pattern的背景下寻找该问题的答案-
如果您的应用程序同时处理
web api
和database
,那么您应该拥有一个,两个或三个多少dataManagers
?案件
a)
dataManager
b)
APIDataManager
和LocalDataManager
c)
dataManager
,APIDataManager
和LocalDataManager
在哪里
a)
interactor
与单个dataManager
对话,后者与您可能拥有的任何服务(远程或本地)对话。b)
interactor
知道local
和remote
信息之间的区别-并调用APIDataManager
或LocalDataManager
,它们分别与远程和本地服务通信。c)
interactor
仅与通用dataManager
对话,通用dataManager
然后与APIDataManager
和LocalDataManager
对话编辑
可能没有确定的解决方案。但任何输入将不胜感激。
最佳答案
这取决于抽象在您的应用程序中的位置,即将您的操作与操作方式区分开。谁在定义两个不同的数据存储区?
如果本地和远程数据存储区是问题域本身的一部分(例如,有时问题需要获取远程数据,而其他时候则需要获取本地数据),则对于交互器来说,了解两个不同的数据存储区是明智的。
如果Interactor只关心请求什么数据,却不关心如何检索数据,则由单个数据管理器确定要使用哪个数据源就很有意义。
这里扮演着两个不同的角色-业务设计师和数据设计师。交互者负责满足业务设计者的需求,即业务逻辑,问题域等。数据层负责满足数据设计者的需求,即服务器团队,IT团队,数据库团队等。
谁可能会改变您寻找数据的位置,业务设计人员还是数据设计人员?该问题的答案将指导您确定哪个 class 负有该责任。
09-11 15:36