您的位置:首页 > 其它

工厂模式

2015-09-16 20:14 344 查看

涉及知识:纯虚函数,虚函数, 虚析构函数, 抽象基类

UML图:



更多uml参考http://www.myexception.cn/design-patterns/873878.html

应用实例:女娲造人

#include <iostream>

using namespace std;

class Human
{
public:
virtual void speak() const = 0;
virtual ~Human(){}
};

class WhiteHuman : public Human
{
public:
virtual void speak() const{
cout << "I'm White man" << endl;
}
};

class BlackHuman : public Human
{
public:
virtual void speak() const{
cout << "I'm black man.." << endl;
}
};

class Factory
{
public:
//如果声明时函数有const修饰,则定义时也必须加上const修饰
virtual Human *create_man() const = 0;
virtual ~Factory(){}
};

class WhiteFactory : public Factory
{
public:
virtual Human *create_man() const{
return new WhiteHuman;   //教训:要有意识的命名
}
};

class BlackFactory : public Factory
{
public :
virtual Human *create_man() const{
return new BlackHuman;
}
};

int main()
{
Factory *fc;

fc = new WhiteFactory;

Human *human;
human = fc->create_man();
human->speak();

delete fc;
delete human;

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