我有一个接口InterfaceBase
和一些从它派生的接口Interface1, Interface2
。接下来我有实现InterfaceX
接口的类,而不是基础类。
现在,我是泛型的初学者,在这方面有很多新方法在我的脑海里弄得一团糟:(。我想创建工厂(静态类),我称之为
Interface1 concrete1 = Factory.Get<Interface1>();
这是我的(示例)工厂实现,它不起作用:
public static class Factory {
public static T Get<T>() where T: InterfaceBase{
Type type = typeof(T);
//return new Concrete1() as T; // type T cannot be used with the as
//return new Concrete1() as type; //type not found
//return new Concrete1(); // cannot implicitly convert
//return new Concrete1() as InterfaceBase; //cannot convert IBase to T
//return new Concrete1() as Interface1; //cannot convert Interface1 to T
}
}
我想要实现的是从应用程序的其余部分隐藏类(它们是 Web 服务处理程序)以轻松交换它们。我想使用工厂,因为类将是单例,它们将存储在工厂内的字典中,因此工厂可以通过这种方法将它们传播到应用程序中,但作为接口..也许我没有正确使用约束是我做错事了?我的方法不好吗?有没有更好的东西,也许整个架构应该重新设计?图表以更好地显示架构。工厂不在里面