2 Abstract Factory

Davids 2025-08-10 05:11:12
Categories: > > Tags:

抽象工厂模式:

创建 一系列 相互依赖对象 的接口,而无需指定它们的具体类。
工程模式的进阶版,如果一组类具有相互依赖(服务于同一个类型的任务),就把它们合并到同一个工厂进行创建,而不是每个类单独工程创建,以保证他们的相互依赖性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class AbstractA {
virtual void DoSomethingA() = 0;
virtual ~Abstract(){}
};
class AbstractB {
virtual void DoSomethingB() = 0;
virtual ~Abstract(){}
};
class AbstractFactory {
virtual AbstractA* CreateAbstractA() = 0;
virtual AbstractB* CreateAbstractB() = 0;
virtual ~AbstractFactory(){}
};

class User {
private:
AbstractFactory* m_AbstractFactory;
public:
User(AbstractFactory* abstractFactory) : m_AbstractFactory(abstractFactory) {
AbstractA* AbstractA = m_AbstractFactory->CreateAbstractA();
AbstractB* AbstractB = m_AbstractFactory->CreateAbstractB();
}
};