我有一个基本场景,其中类 A 具有依赖类 B,而类 B 具有依赖类 C。
A类需要同时使用B类和C类的方法。
将B类和C类都注入到A类中是最佳实践吗?
或者 B 类提供一个返回 C 类的吸气剂也好?
对于这个问题,我们可以假设 C 类实例将从同一个位置注入,并且无论它如何进入 A 类,都应该被共享。
简而言之是的。 SOLID 原则规定注入依赖项是一项要求。但还有更多内容。 SOLID 还表示,类不应该依赖于具体的实现,而应该依赖于接口之类的抽象。
所以具体来说,您可能需要有 B 和 C 的接口以及实现。类 A 将对 B 和 C 的接口进行类型提示,而在运行时注入 B 和 C 的实现。
听起来您正在研究自动装配,这是处理依赖关系管理的好方法。