CodingBoy121的专栏

首先先看我写的一个很简单的例子如下:#include <iostream>using namespace std;class Generator{public:Generator(){};virtual ~Generator(){};virtual void display(){cout << "hello verlink this is the Factory" << endl;}};class worker1 : public Generator{public:void display(){cout << "hello verlink this is the worker1" << endl;}};class worker2 : public Generator{public:void display(){cout << "hello verlink this is the worker2" << endl;}};class Factory{public:Factory(){}static Generator* select(const string& select){if ("worker1" == select){Generator *obj ;obj = new worker1();return obj;}else if("worker2" == select){Generator *obj ;obj = new worker2();return obj;}else{cout << " no this worker" << endl;}}};int main(){Factory::select("worker1")->display();Factory::select("worker2")->display();}

上面的代码中,main函数中通过参数来无脑调用属于自己的类,,Factory类中实现的是根据不同参数来进行动态绑定使用哪个类来进行处理。generator类作为每个worker的父类提供一个抽象接口,里面的函数声明为虚函数用于进行动态绑定。worker中具体实现了generator中的抽象方法。

而做人的能力则会给你一百种机会。

CodingBoy121的专栏

相关文章:

你感兴趣的文章:

标签云: