1 Factory.h 2 #ifndef _FACTORY_H_ 3 #define _FACTORY_H_ 4 5 class Product ; 6 7 class Factory 8 { 9 public:10 virtual ~Factory() = 0 ;11 12 virtual Product* CreatProduct() = 0;13 14 protected:15 Factory();16 private:17 };18 19 class ConcreteFactory : public Factory 20 {21 public:22 ~ConcreteFactory();23 ConcreteFactory();24 Product* CreatProduct();25 protected:26 private:27 };28 29 #endif
1 Factory.cpp 2 #include "Factory.h" 3 #include "Product.h" 4 5 #include6 using namespace std; 7 8 Factory::Factory() 9 {10 11 }12 13 Factory::~Factory()14 {15 16 }17 18 ConcreteFactory::ConcreteFactory()19 {20 cout<<"ConcreteFactory....."<
1 Product.h 2 #ifndef _PRODUCT_H_ 3 #define _PRODUCT_H_ 4 class Product 5 { 6 public: 7 virtual ~Product()=0; 8 9 protected:10 Product();11 private:12 };13 14 15 class ConcreteProduct : public Product16 {17 public:18 virtual ~ConcreteProduct();19 ConcreteProduct();20 protected:21 private:22 };23 24 25 #endif
1 Product.cpp 2 #include "Product.h" 3 #include4 using namespace std; 5 6 Product::Product() 7 { 8 9 }10 11 Product::~Product()12 {13 14 }15 16 ConcreteProduct::ConcreteProduct()17 {18 cout<<"ConcreteProduct"<
1 main.cpp 2 #include "Factory.h" 3 #include "Product.h" 4 5 #include6 using namespace std; 7 8 int main() 9 {10 Factory *fac = new ConcreteFactory() ;11 12 Product *p = fac->CreatProduct();13 getchar();14 return 0 ;15 }