私は依存性注入について学ぶ旅を始めています。DI を使用することをお勧めする理由の 1 つは、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();
}
?
私はこのコンセプト全体に慣れていないので、親切にしてください:)