【发布时间】:2018-05-09 14:01:10
【问题描述】:
我想实现一个抽象工厂(带有单例),并在我的代码中使用它,并映射到 TType 和 TInterfaceType 的具体实例。
这是我当前的代码:
public abstract class AbstractFactory<TType, TInterfaceType> where TType : new() where TInterfaceType : class
{
private TInterfaceType objectTtype;
public TInterfaceType getInstance()
{
try
{
if (objectTtype == null)
{
objectTtype = new TType();
}
return objectTtype;
}
catch (Exception e)
{
throw e;
}
}
}
我收到一个错误:
无法将类型 TType 隐式转换为 TInterfaceType
如何使用类及其对应的接口来实现具有方法定义的抽象类。例如我想按如下方式使用它:
ConcreteFactory : AbstractFactory<ConcreteClass, IConcreteClass>
【问题讨论】:
-
请删除
catch (Exception e) { throw e; }。这不仅无用而且有害,因为它破坏了堆栈跟踪。
标签: c# abstract-class abstract-factory