【发布时间】:2012-01-05 13:47:27
【问题描述】:
我有一个设计问题。我正在修改现有代码以及实例化新类的位置。由于将类变成了我可以理解的抽象类,这给了我错误。它引发错误,因为您无法创建抽象类的实例。
我在下面有这段代码
ExampleProcessor pro = new ExampleProcessor();
但是 ExmapleProcessor 类现在变成了抽象类。
public abstract class ExmapleProcessor {
public abstract void Method1();
public abstract void Method2();
}
子类 AExampleProcessor 和 BExampleProcessor。
public class AExampleProcessor : ExampleProcessor
{
public override void Method1() { //do something }
public override void Method2() { //do something }
}
public class BExampleProcessor : ExampleProcessor
{
public override void Method1() { //do something }
public override void Method2() { //do something }
}
所以这一行导致 42 错误“ExampleProcessor pro = new ExampleProcessor();”在我的应用程序的任何地方。
我不想做
AExampleProcessor pro = new AExampleProcessor();
和
BExampleProcessor pro = new BExampleProcessor();
因为我希望我的应用程序决定使用哪个类。我怎样才能让它加载正确的类?
我想要代码示例..
【问题讨论】:
标签: c# oop design-patterns architecture abstract-class