策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
优点:替代了继承,降低了耦合性
#include <iostream> using namespace std; /*我们来陪电脑*/ class Base{ protected: string name; public: Base() { } Base(string name) { this->name=name; } void show() { cout<<name<<endl; } }; class Graphics:public Base{ public: Graphics() { this->name="AMD"; } Graphics(string name):Base(name){ } /*省略了修改name的函数*/ }; class CPU:public Base{ public: CPU() { this->name="i5"; } CPU(string name):Base(name) { } //..... }; class computer{ private: Graphics *graphics; CPU *cpu; public: computer() { this->graphics=new Graphics(); this->cpu=new CPU(); } void show() { cout<<"电脑的配置为"<<endl; graphics->show(); cpu->show(); } }; int main(void) { computer *p=new computer(); p->show(); return 0; }