工厂模式testing0927.cpp

来源:互联网 发布:java怎么学 编辑:程序博客网 时间:2024/06/05 17:06
// 工厂模式testing0927.cpp : 定义控制台应用程序的入口点。
//


#include "stdafx.h"
#include<iostream>
using namespace std;


///产品接口和产品类
class Product
{
public:
virtual void Create(){NULL;}
};
class ProductA:public Product
{
public:
virtual void Create();
};
void ProductA::Create()
{
cout<<"productA has already been created";
}


class ProductB:public Product
{
public:
virtual void Create();
};
void ProductB::Create()
{
cout<<"productB has been created";
}




///工厂接口和工厂类
class Factory
{
public:
virtual Product* CreateProduct()
{return 0;}
};


class FactoryA:public Factory
{public:
virtual Product*  CreateProduct( );
};
Product*  FactoryA::CreateProduct( )
{
cout<<"产生一个产品A";
//Product product;
return new Product;
}
class FactoryB:public Factory
{public:
virtual Product*  CreateProduct( );
};
Product*  FactoryB::CreateProduct( )
{
cout<<"产生一个产品B";
//Product product;
return new ProductB;
}




int main()
{

Factory* factory=new FactoryB();

Product* product=factory->CreateProduct();
product->Create();
delete product;
cin;



return 0;
}
原创粉丝点击