在依赖注入中,我们针对抽象进行编程。
根据我的经验,我可以说应用程序中的大多数抽象与它们的实现有1:1的关系。这违反了重用抽象原则。
Mark Seeman在他的一些帖子中建议我们可以对抽象进行空对象实现,以避免 RAP 违规(Mark Seeman的这个建议可能是我的推论。请纠正我,如果我引用马克的说法我错了。我的问题是。
答案 0 :(得分:16)
就个人而言,即使 只有一个生产实现,我觉得编程为抽象也很有用。特别是:
请注意,这是一个错误的陈述:
在依赖注入中,我们针对抽象进行编程。
您可以非常轻松地使用依赖注入和具体类。没有什么可说的有为依赖项创建接口。依赖注入更多地是关于类获取其依赖关系的方式,而不是它用于表达它们的抽象级别。
基本上是这样的:
List<T>
的实例而开始注入“集合提供程序” - 例如,出于测试目的,您不需要将类与List<T>
的行为隔离开来。 / LI>