创建型模式——简单工厂模式

开头

  我们可以将设计模式分为三大类,分别为创建型模式、结构型模式、行为型模式,每种模式有着各自的特点。

  创建型模式——它是用来描述如何创建对象的。

  思维导图



创建型模型分类

创建型模式又分为简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、原型模式、建造者模式。

简单工厂模式

简单工厂模式提供了专门的工厂类用于创建对象,将对象的创建和使用分离开。

例子一:我们知道过年都需要做鞭炮,我父辈就是我爸爸那个年代的人们,小时后放炮自己买纸,买火药自己制作炮仗(流程很复杂),然后过年的时候放就可以了。可见他们小时后放炮分为两个步骤:1、制炮(创建对象)  2、放炮(使用对象)。 到了现在我们从烟花厂拿来鞭炮,然后放就可以了。烟花厂就好比工厂,我们不需要知道炮是如何制造出来的,只知道如何放就可以了。

例子二:我小时候喜欢吃月饼每年八月十五我们那里都要做月饼,小时后跟着家里人工厂做月饼,工厂里面的人说,你给我多少面,多少糖,多少油就可以了,然后就静静等着工厂给我们拿出来的月饼,整个过程我们就提供类一个原材料,然后吃就可以了,至于糖、油、面以怎样的比例组合,我们并不关心。

  我们试想整个做月饼的过程来分析一下工厂的有缺点。

  优点:工厂做月饼(创建对象)和佳兴吃月饼(使用对象)我们分离开了,我就知道吃,我想是什么种类的月饼,我就给你提供材料,然后等着吃就可以了。可见客户端的我什么都没有改变,只需要使用就可以。

  缺点:我今天想吃花生味的、明天想吃草莓味的,后天又想吃奶油味的,随着我的需求增多,工厂需要创建制造不同种类的月饼和制作月饼的模具,导致工厂业务逻辑更加复杂,不利于整个工厂的维护。

     

优点:用户不用直接创建对象(制炮),只需要消费使用对象就可以了(放炮)。实现了将对象的创建和使用分离。

          客户端不需要改动任何代码的情况下更换或者增加新的具体产品,提高了系统的灵活性。

缺点:如果工厂的业务过多,导致职责过重,业务逻辑复杂,不利于系统扩展和维护,使系统受到影响。

适用范围:工厂负责创建的对象少,业务简单。客户端只需要传入工厂类参数,不需要关心对象是如何创建的。


计算器简单工厂模式

代码图片:


客户端代码:


    简单工厂最大的有点就是将对象的创建和是使用完全分离开来,可以也有它的缺点,一旦增加新的产品和功能就需要修改简单工厂的方法,(破坏了封装性)使得简单工厂的实现逻辑变得复杂,如何避免这个缺点呢?解决方法:下一篇的分享——工厂方法模式。

猜你喜欢

转载自blog.csdn.net/fjxcsdn/article/details/80294487