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