⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 duck.h

📁 head first 设计模式中的策略模式的C++实现代码
💻 H
字号:
#include<iostream>
using namespace std;

#include "QuackBehavior.h"
#include "FlyBehavior.h"

class Duck
{
public:
	QuackBehavior *quackBehavior;
	FlyBehavior *flyBehavior;

	Duck(){}

	void setFlyBehavior( FlyBehavior *fb)
	{
		flyBehavior = fb;
	}

	void setQuackBehavior( QuackBehavior *qb)
	{
		quackBehavior = qb;
	}

	void performQuack()
	{
		quackBehavior->quack();
	}

	void performFly()
	{
		flyBehavior->fly();
	}

	void swim()
	{
		cout<<"All duck float, even decoys!"<<endl;
	}
};


class MallarDuck: public Duck
{
public:
	MallarDuck()
	{
		quackBehavior = new Quack();
		flyBehavior = new FlyWithWings();
	}
};

class ModelDuck:public Duck
{
public:
	ModelDuck()
	{
		flyBehavior = new FlyNoWay();
	}

	void display()
	{
		cout<<"I'm a model duck!"<<endl;
	}
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -