c++23种设计模式之工厂模式

#include <string> 
#include <iostream> 
using namespace std; 

//工厂模式
// 实例基类,相当于 Product(为了方便,没用抽象) 
class LeiFeng 
{ 

public: 
	virtual void Sweep() 
	{ 
		cout<<"雷锋扫地"<<endl; 
	} 
}; 
// 学雷锋的大学生,相当于 ConcreteProduct 
class Student: public LeiFeng 
{ 
public: 
	virtual void Sweep() 
	{ 
		cout<<"大学生扫地"<<endl; 
	} 
}; 

// 学雷锋的志愿者,相当于 ConcreteProduct 
class Volenter: public LeiFeng 
{ 
public : 
	virtual void Sweep() 
	{ 
		cout<<"志愿者扫地"<<endl; 
	} 
}; 
// 工场基类Creator 
class LeiFengFactory 
{ 
public: 
	virtual LeiFeng* CreateLeiFeng() 
	{ 
		return new LeiFeng(); 
	} 
}; 
// 工场具体类 
class StudentFactory : public LeiFengFactory 
{ 
public : 
	virtual LeiFeng* CreateLeiFeng() 
	{ 
		return new Student(); 
	} 
}; 
class VolenterFactory : public LeiFengFactory 
{ 
public: 
	virtual LeiFeng* CreateLeiFeng() 
	{ 
		return new Volenter(); 
	} 
}; 
// 客户端 
int main() 
{ 
	LeiFengFactory *sf=new LeiFengFactory(); 
	LeiFeng *s=sf->CreateLeiFeng(); 
	s->Sweep(); 
	StudentFactory *mysf=new StudentFactory();
	s=mysf->CreateLeiFeng();
	s->Sweep();

	VolenterFactory *vf=new VolenterFactory;
	s=vf->CreateLeiFeng();
	s->Sweep();

	delete s; 
	delete sf; 
	delete mysf;
	delete vf;

	
	return 0; 
}

你可能感兴趣的:(c++23种设计模式之工厂模式)