现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

设计模式之C++实现(3):简单工厂模式(Simple Factory Pattern)

2015-08-23 21:52 工业·编程 ⁄ 共 565字 ⁄ 字号 暂无评论

简单工厂模式按照设计模式类型分的话是属于创建型模式,他是工厂模式中最简单的一种,他不属于GoF 23中设计模式之一,但是是简单实用的。他是有一个工厂对象来决定创建哪一种对象的实例。

实现比较简单,这里我只贴出类图和调用方法:

调用方法:

IProduct * simpleFactory::Create(std::string className)
{
    if( className == "Ipad")
        return new Ipad();
    if(className == "IPhone")
        return new IPhone();
}

优点:外界只要传入类的名字或者识别符即可,不需要关心具体创建过程,只顾“消费”就可以了。各有各的指责和权力,分工明确,利于整个软件架构优化。

缺点:违反里高内聚责任分配原则,将全部逻辑放到一个工厂类中,如果需要支持新的类,那就必须改变工厂类了。

           这里只有一种工厂,一个系列的产品,那如果有多个系列的产品呢?问题如何解决?

应用场景:

1.        我的asp.net程序需要根据客户实际所用数据库来配置,那么我的程序支持所有的数据库,具体用到哪个,配置文件配置一下即可。这个C#/Java里的反射就可以实现。

2.        MFC里的Seralize功能。

作者:LCL_data

给我留言

留言无头像?