我有一個設計問題。我正在修改現有的代碼以及我正在實例化新類的位置。由於將該類轉換爲我可以理解的Abstract類,它給了我錯誤。它拋出一個錯誤,因爲你不能創建抽象類的實例。具體的課使用的抽象類?設計問題?
我有這個代碼下面
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();
,因爲我想我的應用程序來決定使用哪一個類。我怎樣才能讓它加載正確的課程?
我想代碼示例,請..
正是我寫的,哈哈。 MSDN參考 - http://msdn.microsoft.com/en-us/library/ee817667.aspx –
@RichardD:即本文引用圖案的更先進的變體,而我的代碼只是一個[工廠方法](HTTP ://en.wikipedia.org/wiki/Factory_method_pattern)該示例是[抽象工廠](http://en.wikipedia.org/wiki/Abstract_factory_pattern)。 –
這會教我,然後再發布正確讀取:d –