【发布时间】:2011-02-10 06:43:22
【问题描述】:
工厂方法到底是什么?怎么用dll实现?
【问题讨论】:
标签: c++ design-patterns dll factory-pattern factory-method
工厂方法到底是什么?怎么用dll实现?
【问题讨论】:
标签: c++ design-patterns dll factory-pattern factory-method
工厂的基本思想是函数返回从已知基类派生的堆分配对象。因此,在您的情况下,您的主应用程序中可能有一些代码调用 dll 中的工厂,获取未知动态类型和实现的对象,但您会知道它满足特定基类的 API 要求.然后,您通过该接口使用该对象,并通过其可能的虚拟析构函数将其删除。工厂方法有多种类型,具体取决于实际派生类的选择方式,但通常它会检查函数的一些输入、IO 流或 XML 结构等,然后找出合适的类型。工厂是否在 dll 中并不会真正对这里的整体模型产生任何影响,但它确实可以更轻松地更新派生对象的列表和实现,而无需重新编译应用程序。
【讨论】:
工厂方法是一种创建模式。这种模式有助于对用于创建对象的接口进行建模,该对象在创建时可以让其子类决定要实例化哪个类。我们称之为工厂模式,因为它负责“制造”一个对象。它通过从一组相关类中创建正确的对象来帮助实例化适当的子类。工厂模式通过消除将特定于应用程序的类绑定到代码中的需要来促进松散耦合。
工厂模式是关于“定义一个用于创建对象的接口,但让子类决定实例化哪个类。工厂方法让一个类将实例化推迟到子类”因此:“工厂方法允许类将实例化推迟到子类”。
查看One typical use of the Factory Pattern in a Component Object Model (COM) application@
【讨论】: