我在很多地方看到过以下模式的使用:
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
,这解释了子调用的必要性并回答了我的问题。