假设我们有三层;用户界面、业务、数据。我们正在使用 DI。我不希望从 UI 访问数据层。
问题是关于数据层的DI注册。组合根在 UI 中,我不想在那里对 Data 有任何引用。我找到了这个答案。据我了解,我们应该参考所有层,并认为它们是库而不是层。这样我可以指定我的业务层使用数据层或我想要的任何其他东西。毕竟这就是 DI 存在的原因。
没错,但是有问题!我们不应该在 UI 中使用数据层。但是一旦一个开发者不小心从 UI 引用到了 Data,而另一个开发者直接从 Data 层注入了一些东西到一个 UI 类中。所以他跳过了我从不想要的业务层。
我该如何处理这种情况?我想有一些限制,但另一方面我想要 DI 的灵活性。
当然,有些人认为我们可以有一个单独的库,只用于依赖注册。
这里最好的模式是什么?