【C++设计模式】用动画片《少年骇客》(Ben10)来解释策略模式

2023年8月25日,周五上午

今天上午学习设计模式中的策略模式时,发现这个有点像很多卡通片里面的变身器...


#include

//alien hero是外星英雄的意思
//在《少年骇客》中,主角可以通过变身器变成10种外星英雄
class AlienHero{
public:
	//Shapeshift是变身的意思
	virtual void Shapeshift()=0; 
};

//变成超能兽
class Wildmutt:public AlienHero{
public:
	void Shapeshift(){
		std::cout<<"变身!超能兽!"<ah=ah;
	}
	
	//在手表变身器上选好英雄后,按下手表变身器中间的按钮变身!
	void push(){
		ah->Shapeshift();
	}
};

int main(){
	
	//变身超能兽!!!
	Omnitrix omx(new Wildmutt());
	omx.push();
}

【C++设计模式】用动画片《少年骇客》(Ben10)来解释策略模式_第1张图片


使用策略模式的好处是,

当我需要添加一种新的外星英雄——Upgrade(变形怪)时,

我不需要改动里面的任何代码,只需要基于抽象类AlienHero再添加一个新类Upgrade就可以了。

#include

//alien hero是外星英雄的意思
//在《少年骇客》中,主角可以通过变身器变成10种外星英雄
class AlienHero{
public:
	//Shapeshift是变身的意思
	virtual void Shapeshift()=0; 
};

//变成超能兽
class Wildmutt:public AlienHero{
public:
	void Shapeshift(){
		std::cout<<"变身!超能兽!"<ah=ah;
	}
	
	//在手表变身器上选好英雄后,按下手表变身器中间的按钮变身!
	void push(){
		ah->Shapeshift();
	}
};

int main(){
	
	//变身变形怪!!!
	Omnitrix omx(new Upgrade());
	omx.push();
}

【C++设计模式】用动画片《少年骇客》(Ben10)来解释策略模式_第2张图片

 

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