策略模式:
C++代码实现:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;
class Weapean {
public :
virtual void use() = 0;
};
class AK47 : public Weapean {
public:
virtual void use() {
cout << "使用着枪支" << endl;
}
};
class Knife : public Weapean {
public:
virtual void use() {
cout<<"挥舞着大到"<<endl;
}
};
class Person {
private :
Weapean* weapean;
public :
void setWeapean(Weapean* weapean) {
this->weapean = weapean;
}
void throwWeapean(){
this->weapean->use();
}
};
void test() {
Person p;
p.setWeapean(new AK47());
p.throwWeapean();
}
int main() {
test();
return 0;
}