设计模式 一

#include <iostream>

using namespace std;
class Bankworker
{
public:
	virtual void work() = 0;
};
class Bankworker_Save:public Bankworker
{
public:
	void work()
	{
		cout << "存钱" << endl;
	}
};
class Bankworker_transform:public Bankworker
{
public:
	void work()
	{
		cout << "转账" << endl;
	}
};
class Bankworker_getmoney:public Bankworker
{
public:
	void work()
	{
		cout << "取钱" << endl;
	}
};
int main()
{
	Bankworker *pb1 = new Bankworker_Save;
	pb1->work();

	Bankworker *pb2 = new Bankworker_transform;
	pb2->work();

	/*Bankworker *pb3 = new Bankworker_getmoney;
	pb3->work();*/


	system("pause");
	return 0;
}
#include <iostream>

using namespace std;

class CPU
{
public:
	virtual void work() = 0;
};
class CPU_inter:public CPU
{
public:
	void work()
	{
		cout << "inter CPU 工作" << endl;
	}
};
class CPU_SM :public CPU
{
public:
	void work()
	{
		cout << "SM CPU 工作" << endl;
	}
};

class YP
{
public:
	virtual void work() = 0;
};
class YP_SM :public YP
{
public:
	void work()
	{
		cout << "SM YP 工作" << endl;
	}
};
class YP_XJ :public YP
{
public:
	void work()
	{
		cout << "XJ YP 工作" << endl;
	}
};
class Computer
{
public:

	void setCPU(CPU *cpu)
	{
		this->cpu = cpu;
	}
	void setYP(YP *yp)
	{
		this->yp = yp;
	}

	void setComputer()
	{
		cpu->work();
		yp->work();
	}
private:
	CPU *cpu;
	YP *yp;
};
int main()
{
	Computer c;

	CPU *cpu = new CPU_inter;
	c.setCPU(cpu);

	YP *yp = new YP_SM;
	c.setYP(yp);

	YP *yp1 = new YP_XJ;
	c.setYP(yp1);

	CPU *cpu1 = new CPU_SM;
	c.setCPU(cpu1);

	c.setComputer();



	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值