温莎城堡中类型化工厂的不同参数类型
Different parameters type for typed factory in Castle Windsor
给出这样的界面:
public interface IFooFactory
{
IFoo Create();
void Release(IBar bar);
}
并假设 IFoo
必须实现 IBar
,Castle Windsor 会知道如何处理该对象,或者我们是否会在对象类型不完全相同的情况下产生任何问题?文档没有说明是否支持这种方式。
是的,会的。释放方法的声明类型对 Windsor 无关紧要。因此,以下所有方法都将具有相同的行为:
void Release(IBar obj)
void ReleaseMe(IFoo obj)
void Exterminate(Object obj)
创建和发布方法中的不同类型可能会让最终使用您的 IFooFactory
的人感到困惑。
给出这样的界面:
public interface IFooFactory
{
IFoo Create();
void Release(IBar bar);
}
并假设 IFoo
必须实现 IBar
,Castle Windsor 会知道如何处理该对象,或者我们是否会在对象类型不完全相同的情况下产生任何问题?文档没有说明是否支持这种方式。
是的,会的。释放方法的声明类型对 Windsor 无关紧要。因此,以下所有方法都将具有相同的行为:
void Release(IBar obj)
void ReleaseMe(IFoo obj)
void Exterminate(Object obj)
创建和发布方法中的不同类型可能会让最终使用您的 IFooFactory
的人感到困惑。