AbstractFactory模式用来解决这类问题:要创建一组相关或者相互依赖的对象。
AbstractFactory Pattern结构图
实现:
1 #ifndef _PRODUCT_H_ 2 #define _PRODUCT_H_ 3 class AbstractProductA 4 { 5 public: 6 virtual ~AbstractProductA(); 7 protected: 8 AbstractProductA(); 9 private: 10 }; 11 12 class AbstractProductB 13 { 14 public: 15 virtual ~AbstractProductB(); 16 protected: 17 AbstractProductB(); 18 private: 19 }; 20 21 class ProductA1:public AbstractProductA 22 { 23 public: 24 ProductA1(); 25 ~ProductA1(); 26 protected: 27 private: 28 } 29 30 class ProductA2:public AbstractProductA 31 { 32 public: 33 ProductA2(); 34 ~ProductA2(); 35 protected: 36 private: 37 }; 38 39 class ProductB1:public AbstractProductB 40 { 41 public: 42 ProductB1(); 43 ~ProductB1(); 44 protected: 45 private: 46 }; 47 48 class ProductB2:public AbstractProductB 49 { 50 public: 51 ProductB2(); 52 ~ProductB2(); 53 protected: 54 private: 55 }; 56 57 #endif