#pragma once
#include <Windows.h>
#include <iostream>
using namespace std;
/*
简单工程模式
(1)创建产品抽象类
(2)创建不同派生类继承产品抽象类
(3)创建工厂类,在工厂类中添加创建产品的方法,并返回产品抽象类的对象指针
(4)在该方法中根据不同的产品类别,实例化对应的产品对象,并返回创建的产品对象的指针
*/
enum
{
PRODUCT_PRO1 = 1,
PRODUCT_PRO2,
PRODUCT_PRO3
};
class Iproduct{
public:
virtual void printPruductName() = 0;
};
class product1: public Iproduct
{
public:
void printPruductName()
{
cout<<"Pruduct1 print Name..."<<endl;
}
};
class product2 : public Iproduct{
public:
void printPruductName(){
cout<<"product2 print name..."<<endl;
}
};
class product3 : public Iproduct{
public:
void printPruductName(){
cout<<"product3 print name..."<<endl;
}
};
class factory {
public:
factory(){};
~factory(){};
public:
virtual Iproduct* concreateFactory(UINT uProductId)
{
switch (uProductId)
{
case PRODUCT_PRO1:
{
return new product1();
}
break;
case PRODUCT_PRO2:
{
return new product2();
}
break;
case PRODUCT_PRO3:
{
return new product3();
}
break;
default:
{
return NULL;
}
break;
}
}
};
void main(void)
{
factory *pFactory = new factory();
for (int i = 1; i <= 3; i++)
{
Iproduct *pProduct = pFactory->concreateFactory(i);
if (pProduct != nullptr)
{
pProduct->printPruductName();
}
}
}
工程模式(一)简单工厂模式
最新推荐文章于 2022-04-23 12:44:00 发布