了解干净架构中的“依赖注入框架就是细节”

时间:2018-09-12 07:40:53

标签: dependency-injection clean-architecture

当我阅读“干净的体系结构”这本书时,它说:“架构师的目标是为系统创建一个形状,该形状将策略视为系统的最基本元素,同时使与该策略无关的细节变得无关紧要。这使得关于那些细节的决定被延迟和推迟。”

然后说数据库,依赖项注入框架,Web服务器等就是这些详细信息的示例。

问题是:只要我创建数据库接口,就可以开发高级策略而无需提交数据库之类的细节。但是我不明白的是,如何从高级策略代码中删除“依赖注入框架”,因为像Spring这样的DI框架负责创建和自动装配对象。

1 个答案:

答案 0 :(得分:1)

如果您的DI框架仅使用需要更改高级策略才能起作用的注释或其他机制,则该框架不适合在干净的体系结构或不应严重依赖于此的任何其他应用程序中用作DI工具外部库。

例如,Spring可以不带注释地使用。

首先,在干净的体系结构中不需要使用DI框架。您可以轻松地在最低的“框架和驱动程序”层构造适配器,用例交互器等,并通过构造函数或设置器手动注入其依赖性。没有其他层会知道如何注入依赖项。

使用DI框架时,仅需要外部解析输入适配器,其他依赖项将由DI框架解析和注入。这意味着您可以在DI框架之间进行切换,甚至可以在不插入任何框架的情况下进行插入,而不会影响除“框架和驱动程序”层之外的其他任何层。