我不确定我正在编写的代码是否有意义。这是一般的想法:
我有一个 Parser 类,它将采用不同类型的文档。根据类型,我会以不同的方式解析文档。
所以假设我有两种类型的文档,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
{
...
}
我想知道的问题是我在抽象解析器中声明了抽象方法和非抽象方法。编译器似乎没有抱怨,它似乎仍然可以正常工作。
这是不标准的吗?也许有更好的方法来设计这个?