您的位置:首页 > 编程语言 > C语言/C++

工厂模式--c++实现

2015-12-18 17:37 113 查看
1、基类与子类 (state_init、state_routing、state_exexute:将要通过工厂生产的子类)

class state

{

public:

virtual void process() = 0;

};

class state_init : virtual public state

{

public:

virtual void process(){

cout << "state_init. process" << endl;

}

};

class state_routing : virtual public state

{

public:

virtual void process(){

cout << "state_routing. process" << endl;

}

};

class state_execute : virtual public state

{

public:

virtual void process(){

cout << "state_execute. process" << endl;

}

};

2、工厂类

class statefactory

{

public:

static state* generate_state(const string& operate){

if (operate == "init"){

return new state_init();

}else if (operate == "routing"){

return new state_routing();

}else if (operate == "execute"){

return new state_execute();

}else{

return NULL;

}

}

};

3、应用

int main()

{

state* pinit = statefactory::generate_state("init");

state* proute = statefactory::generate_state("routing");

state* pexecute = statefactory::generate_state("execute");

if (pinit){

pinit->process();

delete pinit;

pinit = NULL;

}else{

cout << "pinit is null" << endl;

}

if (proute){

proute->process();

delete proute;

proute = NULL;

}else{

cout << "proute is null" << endl;

}

if (pexecute){

pexecute->process();

delete pexecute;

pexecute = NULL;

}else{

cout << "pexecute is null" << endl;

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: