【发布时间】:2014-05-26 13:13:41
【问题描述】:
我有一系列或多或少做同样事情的课程。来自 Java 世界,我将它们分组在一个父类下,并使用抽象工厂模式来共享公共代码并为我的类提供单点创建。因此,所有类都继承自 DocumentParser,它只有纯虚方法和静态方法,它们创建执行实际工作的类的实例,例如 PDFParser。
DocumentParser 的每个实现只能处理一种类型的文档,如果启发式失败,构造函数将抛出异常。
但现在我想添加一种新的工厂方法,它将执行这些启发式方法并根据需要创建正确类型的类的实例。我的问题是,如果我收到一个与任何现有解析器都不匹配的文件,我该怎么办?我有工厂退货nullptr吗?
【问题讨论】:
标签: c++ design-patterns null factory