我不確定我寫的代碼是否合理。這裏的一般想法:C#:抽象類中的抽象和非抽象方法?
我有一個解析器類將採取不同類型的文件。根據類型,我將以不同的方式解析文檔。
所以假設我有兩種類型的文件,A和B.工廠模式似乎是一個很好的方式去做這件事情,因爲我需要擴展程序來處理額外的類型,所以我將有一個摘要類。
abstract class Parser
{
...
public void common_method() {
// something common that all parsers will use
// like file IO
}
// derived classes will override this
public abstract void specific_method();
}
class A_Parser : Parser
{
...
}
class B_Parser : Parser
{
...
}
我想知道的問題是,我在抽象解析器中聲明瞭抽象方法和非抽象方法。編譯器似乎沒有抱怨,它似乎仍然正常工作。
這是不是標準?也許有更好的方法來設計這個?