Closed. This question is opinion-based。它当前不接受答案。












想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

4年前关闭。



Improve this question




我正在VIPER Architectural pattern的背景下寻找该问题的答案-

如果您的应用程序同时处理web apidatabase,那么您应该拥有一个,两个或三个多少dataManagers

案件

a) dataManager
b) APIDataManagerLocalDataManager
c) dataManagerAPIDataManagerLocalDataManager
在哪里

a) interactor与单个dataManager对话,后者与您可能拥有的任何服务(远程或本地)对话。

b) interactor知道localremote信息之间的区别-并调用APIDataManagerLocalDataManager,它们分别与远程和本地服务通信。

c) interactor仅与通用dataManager对话,通用dataManager然后与APIDataManagerLocalDataManager对话

编辑

可能没有确定的解决方案。但任何输入将不胜感激。

最佳答案

这取决于抽象在您的应用程序中的位置,即将您的操作与操作方式区分开。谁在定义两个不同的数据存储区?

如果本地和远程数据存储区是问题域本身的一部分(例如,有时问题需要获取远程数据,而其他时候则需要获取本地数据),则对于交互器来说,了解两个不同的数据存储区是明智的。

如果Interactor只关心请求什么数据,却不关心如何检索数据,则由单个数据管理器确定要使用哪个数据源就很有意义。

这里扮演着两个不同的角色-业务设计师和数据设计师。交互者负责满足业务设计者的需求,即业务逻辑,问题域等。数据层负责满足数据设计者的需求,即服务器团队,IT团队,数据库团队等。

谁可能会改变您寻找数据的位置,业务设计人员还是数据设计人员?该问题的答案将指导您确定哪个 class 负有该责任。

09-11 15:36