【问题标题】:Should data layer implementations be inside data layer if they depend on platform?如果数据层实现依赖于平台,它们是否应该在数据层内部?
【发布时间】:2021-01-21 14:05:57
【问题描述】:
假设我们有以下图表。 LocalStorage 是否应该在数据层中,即使它取决于平台?我们是否应该有一个名为data-android 的单独模块,例如具有这些类型的实现?
编辑:也许实际上正确的做法是将Repository 和ILocalStorage 移动到域层,因为它们只包含业务逻辑。这大概就是这个误会的来源。这样一来,只需执行合约,数据层就可以轻松替换。
【问题讨论】:
标签:
android
clean-architecture
【解决方案1】:
编辑:也许实际上正确的做法是将 Repository 和 ILocalStorage 移动到域层,因为它们只包含业务逻辑。这大概就是这个误会的来源。这样一来,只需实施合同,数据层就可以轻松替换。
我完全同意这一点,您 ILocalStorasge 应该退出实现,并且您的存储库只需要知道正在使用 ILocalStorage 并且肯定可以调用接口规范的某些方法。
使用此逻辑,您可以有多个 LocalStorage 实现,针对不同平台使用不同的技术。