多くの場所で使用されている次のパターンを見てきました。
abstract class SimpleProvider<T>
{
public object Create(IContext context)
{
return CreateInstance(context);
}
protected abstract T CreateInstance(IContext context);
}
実際の違いがわかりません。なぜ次のように書かれていないのでしょうか。
abstract class SimpleProvider<T>
{
public abstract T Create(IContext context);
}
更新:上記のスニペットNinject
は、インターフェイスが指定されていない場所のドキュメントから取得しましたが、実際のソースを見ると、サブコールの必要性を説明し、私の質問に答えるSimpleProvider<T>
インターフェイスを実装していることがわかります。IProvider