ITKeyword,专注技术干货聚合推荐

注册 | 登录

c++设计模式 抽象工厂模式

u013676711 分享于 2015-02-28

推荐:《设计模式》—抽象工厂模式

这篇帖子总结的非常好:http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html 总结三种工厂模式:         简单工厂模式:你需要什么实例,需

2019阿里云双11返场狂欢继续,
地址https://www.aliyun.com/1111/2019/home

首先先看我写的一个很简单的例子如下:

推荐:设计模式之抽象工厂模式(AbstructFactory)

抽象工厂模式(AbstructFactory) 优点: 1.可以支持不同类型的产品,使得产品的灵活性更强 2.可以很方便的一族中间的不同类型的产品 缺点: 结构过于臃肿,如果产

#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中的抽象方法。

推荐:设计模式整理(一) 之 抽象工厂

一、结构图          二、适用性         1、一个应用独立于一产品创建、组合的时候;         2、一个应用要用多个产品中某一产品来进行配置的时候;         3

首先先看我写的一个很简单的例子如下: #include <iostream>using namespace std;class Generator{ public: Generator() {}; virtual ~Generator(){}; virtual void display() { co

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。