我开始了学习依赖注入的旅程,我看到为什么使用 DI 是个好主意的原因之一是它显式地指定了你的依赖项,这也使你的代码更加清晰。
我也注意到接口被大量使用,但我想知道为什么我们不使用抽象类来指定默认构造函数?
当然,抽象类中不能包含任何实现。
这不是吗:
abstract class FooBase
{
protected IBar _bar;
FooBase(IBar bar)
{
_bar = bar;
}
abstract void DoSomething();
abstract void DoSomethingElse();
}
更清楚地展示 FooBase 对象的依赖关系不仅仅是:
interface IFoo
{
IBar Bar { get; }
void DoSomething();
void DoSomethingElse();
}
?
请记住,我对这整个概念很陌生,所以要友善:)