工厂方法模式

时间:2011-02-10 06:43:23

标签: c++ design-patterns dll factory-pattern factory-method

工厂方法究竟是什么?如何用dll实现?

2 个答案:

答案 0 :(得分:4)

工厂的基本思想是函数返回从已知基类派生的堆分配对象。因此,在您的情况下,您可能在主应用程序中有一些代码调用dll中的工厂,获取未知动态类型和实现的对象,但您会知道它满足特定基类的API要求。然后,您通过该接口使用该对象,并通过其可能的虚拟析构函数将其删除。工厂方法有多种类型,具体取决于实际派生类的选择方式,但通常会检查函数的一些输入,IO流或XML结构等,并计算出适当的类型。工厂是否在dll中对这里的整体模型没有任何影响,但它确实更容易更新派生对象的列表和实现而无需重新编译应用程序。

有关详细信息,请参阅:http://en.wikipedia.org/wiki/Factory_method_pattern

答案 1 :(得分:3)

工厂方法是一种创造模式。此模式有助于为创建对象的接口建模,该对象在创建时可以让其子类决定实例化哪个类。我们称之为工厂模式,因为它负责“制造”一个对象。它通过从一组相关类创建正确的对象来帮助实例化相应的子类。 Factory Pattern通过消除将特定于应用程序的类绑定到代码中的需要来促进松散耦合。

工厂模式完全是关于“定义用于创建对象的接口,但让子类决定实例化哪个类 .Pool方法允许类将实例化延迟到子类”因此:“< strong>工厂方法允许类将实例化延迟到子类“。

请参阅One typical use of the Factory Pattern in a Component Object Model (COM) application