您的位置:首页 > 其它

设计模式之工厂三姐妹解读(三)

2016-03-26 02:48 218 查看
解读工厂三姐妹(三)
现在我们来说一下,工厂三姐妹中的公主吧!就是老三----抽象工厂模式啦!

想信通过我们说了这么多大家一定对设计模式感兴趣了,对工厂三姐妹的老大老二也有了一些比较清晰的认识了。   老规矩啦,先来一波定义所谓的抽象工厂模式:提供创建一系列相关或者相互依赖对象的接口,而无需指定具体的类。好像看起来更加抽象了耶!
那好吧我们先用我们自己的话来说说它吧。之前呢我们的运算都只能算是一类的操作也就是运算,现在我们来换一个谈论的对象,假如说我们要对数据库进行操作的话,现在市面上有很多种数据库,如果我们使用工厂方法模式的话,将会对每一个数据库都要写一遍这真是太繁琐了。有了抽象工厂模式,我们只需要定义一个抽象的的类该类具有所有的操作的接口,然后我们继续对这个抽象的类进行继承,但是我们并不去直接的生产类,而是将类的接口不同的方法实现。

#include <iostream>
using namespace std;
class idepartment
{
virtual void insert() = 0;

};

class Sqlerver:public idepartment
{
virtual void insert(){cout << "向SQL中插入一条语句!";};
};

class Acess:public idepartment
{
virtual void insert(){cout << "向Acess中插入一条语句!";};
};

class Factory
{
virtual idepartment* CreateaInsert() = 0;
};
class SqlFactory
{
virtual idepartment* CreateaInsert()
{
idepartment* id = new Sqlerver;
return id;
}
};

class AcessFactory
{
virtual idepartment* CreateaInsert()
{
idepartment* id = new Acess;
return id;
}
};
现在我们应该可以看到了抽象工厂模式和工厂方法模式的差别了吧,在工厂方法模式中,我们只是将任务派发给不同的子类,现在我们将任务再一次的抽象然后在子类中将抽象的方法不同的实现,再用相应的工厂子类去进行实例化,下面又到了我们图解抽象工厂设计模式的时候了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: