策略模式

#include
using namespace std;

//基算法类
class Base_cash
{
public:
	virtual void cash() {};
};

class cash_1 :public Base_cash
{
public:
	void cash()
	{
		cout << "cash_1" << endl;
	}
};
class cash_2:public Base_cash
{
public:
	void cash()
	{
		cout << "cash_2" << endl;
	}
};

class cash_3 :public Base_cash
{
public:
	void cash()
	{
		cout << "cash_3" << endl;
	}
};

class Contex
{
	Base_cash *cs =NULL;

public:
	Contex(int type)
	{
		switch (type)
		{
		case 1:
			cs = new cash_1();
			break;
		case 2:
			cs = new cash_2();
			break;
		case 3:
			cs = new cash_3();
			break;
		default:
			break;
		}
	}

	void GetResut()
	{
		cs->cash();
	}

};
int main()
{
	Contex *s1 = new Contex(1);
	s1->GetResut();



	Contex *s2 = new Contex(2);
	s2->GetResut();


	Contex *s3 = new Contex(3);
	s3->GetResut();


	char p;
	cin >> p;
}

你可能感兴趣的:(设计模式,C++,策略模式,c++,设计模式)