如何使用C ++类实现工厂模式?

时间:2010-10-27 00:30:21

标签: c++ design-patterns

我正在开发一个主要使用工厂和外观模式实现的项目。但是我无法理解,因为我没有关于工厂模式如何在C ++中工作的清晰概念。任何人都可以建议好的样本程序或链接。

由于

krissam

3 个答案:

答案 0 :(得分:2)

所有设计模式查询的好网站是 Hudson Design Patterns

它几乎拥有所有GOF设计模式,但以一种非常容易理解的方式解释它。还包括演示。

答案 1 :(得分:1)

工厂模式适用于所有语言。

class NodeFactory {
   SimpleNode createSimple() { return new SimpleNode(); }
   ComplexNode createComplexNode() { return new ComplexNode(); }
};

工厂只是一个具有创建对象的方法的类。

安吉洛

答案 2 :(得分:1)

维基百科有一个factory pattern页面。

对于简单的情况,确实没有技巧。刚

Foo* createFoo() {
  return new Foo();
}

当你想要做的不仅仅是使用new时,它会变得更加棘手。一个很好的例子是构造函数是否需要多个参数,或者是否需要以某种方式初始化对象。在这种情况下,您可以按要求加载工厂,而不是让开发人员担心它们:

class BarFactory {
    BarFactory(Dep* x, Depen* y) ...

    getBar() {
       return new Bar(x->SOME_METHODS, y->SOMETHINGELSE, ...);
    }

}

在那个例子中,工厂从正确制作Bar对象中解脱出来(想象它需要更多的参数,他们需要大量的手持)。如果您的API包含许多不会更改的选项或只是一个错误的API,这会很有用。