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