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