C++设计模式之——Factory模式

来源:互联网 发布:淘宝客服的等级工资 编辑:程序博客网 时间:2024/06/03 09:56

今天是决定开始学习一下设计模式的知识,之前对这个方面只是略微的听说过,没有真正的了解过这方面的内容,因此觉得有必要进行一些了解,以帮助我在以后的学习中更好的了解面向对象的知识。

先从简单的入手。Factory模式是23种模式中最简单和最容易入门的模式,因此在这里先从这个模式入手。

Foctory模式,也就叫做工厂模式,这个模式在GOF介绍的模式中,包括三种,分别是:简单工厂模式、工厂方法模式和抽象工厂模式。

在很多的资料中把简单工厂模式和工厂方法模式放到一起叫做Factory模式,而抽象工厂模式则是单独的一个设计模式。

在这里先只介绍Factory模式:

简单工厂模式,是比较简单的模式,其工作的原理与早期的工厂工作方式是一样的,也就是说相当于建立一个共工厂给用户直接生产产品,其所有的工作都在一个工厂内完成的,在这里简单工厂模式实现只一类产品的需求。

工厂方法模式是在简单工厂模式的基础上对其增加了具体工厂实现类作为之前抽象工厂类的子类,以实现不同产品的分工操作,因此这里在工厂产品增加的前提下,可以很好的对其进行扩展。

Factory设计模式的使用,很重要的贡献是:1)定义创建对象的接口或者抽象,封装了对象的创建。2)把具体类的工作延迟到子类中进行。

按照我自己的理解(本人也是刚刚接触设计模式,有不足的地方还请见谅),Factory模式的作用与帮助就是提供了一个接口而把具体的实现与之相分离,其实这个过程也是很好理解的,因为对于特定的环境下我们所要实现的操作的功能是会有不同的,因此面向对象的思想中很重要的一点就是要考虑程序设计的多态性,Factory模式很好的考虑了这一点。在不同的子类中实现不同的操作,而抽象出公共的属性在父类中声明,对外提供的是父类的接口,通过这个接口实现子类工作的具体化。

Factory模式的可能还存在不足,也就是说在子类具体实例化一个函数体时,我们不得不在子类的系统中添加一个方法来处理这个新建的子类的函数体,那么这样接口就可能不会封闭。另一方面Factory模式仅仅局限于一类也就是说工厂类为一个共同的基类的情况。

(以上只代表本人看法)

0 0
原创粉丝点击