相关疑难解决方法(0)

如何设计一个简单的C++对象工厂?

在我的应用程序中,有10-20个类被实例化一次[*].这是一个例子:

class SomeOtherManager;

class SomeManagerClass {
public:
    SomeManagerClass(SomeOtherManager*);
    virtual void someMethod1();
    virtual void someMethod2();
};
Run Code Online (Sandbox Code Playgroud)

类的实例包含在一个对象中:

class TheManager {
public:
    virtual SomeManagerClass* someManagerClass() const;
    virtual SomeOtherManager* someOtherManager() const;
    /** More objects... up to 10-20 */
};
Run Code Online (Sandbox Code Playgroud)

目前,TheManager使用new运算符来创建对象.

我的目的是能够使用插件替换SomeManagerClass(或任何其他类)实现与另一个.为了取代实施,需要两个步骤:

  1. 定义一个DerivedSomeManagerClass类,它继承了SomeManagerClass [plugin]
  2. 创建新类(DerivedSomeManagerClass)而不是默认(SomeManagerClass)[application]

我想我需要某种对象工厂,但它应该相当简单,因为总是只有一种类型要创建(默认实现或用户实现).

有关如何设计像我刚刚描述的简单工厂的想法吗?考虑到将来可能会有更多类的事实,因此应该很容易扩展.

[*]我不在乎它是否不止一次发生.

编辑:请注意,TheManager中包含两个以上的对象.

c++ factory

12
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

factory ×1