23种设计模式-简单工厂模式告诉你奶茶怎么买

软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。

简单工厂模式 – 基本定义:

简单工厂模式又称之为静态工厂方法,属于创建型模式。在简单工厂模式中,可以根据传递的参数不同,返回不同类的实例。简单工厂模式定义了一个类,这个类专门用于创建其他类的实例,这些被创建的类都有一个共同的父类。

特别说明一下,简单工厂模式并不是23种设计模式其中的一种,但是他是后面工厂模式和抽象工厂模式的原型,所以这里先介绍一下他作为引。先了解简单工厂模式对后面的学习有所帮助。

 

模式结构:

 

简单工厂模式UML结构图

模式分析:

Factory:工厂角色。专门用于创建实例类的工厂,提供一个方法,该方法根据传递的参数不同返回不同类的具体实例。

Product:抽象产品角色。为所有产品的父类。

ConcreteProduct:具体的产品角色。

简单工厂模式将对象的创建和对象本身业务处理分离了,可以降低系统的耦合度,使得两者修改起来都相对容易些。当以后实现改变时,只需要修改工厂类即可。

模式举例:

有一个客人想买奶茶,他到找销售员购买一杯奶茶,销售员要根据不同客户的口味,去找配餐员下单,如丝袜奶茶、鸳鸯奶茶等等,销售员并不关心奶茶具体怎么做的,根据客户购买的下单内容得到奶茶,递给客户。

客人买奶茶

模式总结:

优点

1、简单工厂模式实现了对责任的分割,提供了专门的工厂类用于创建对象。

2、客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可,对于一些复杂的类名,通过简单工厂模式可以减少使用者的记忆量。

3、通过引入配置文件,可以在不修改任何客户端代码的情况下更换和增加新的具体产品类,在一定程度上提高了系统的灵活性。

缺点

1、由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。

2、使用简单工厂模式将会增加系统中类的个数,在一定程序上增加了系统的复杂度和理解难度。

3、系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,在产品类型较多时,有可能造成工厂逻辑过于复杂,不利于系统的扩展和维护。

4、简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构

应用场景

1、 工厂类负责创建的对象比较少。

2、 客户端只知道传入工厂类的参数,对于如何创建对象不关心

代码实现

第一步:定义我们销售的产品奶茶。任何奶茶都需要 准备、制作、和完成三个步骤。

PS:创建奶茶接口

第二步:挑选我们制作各种奶茶的厨师

PS:具体奶茶制作实现类

分别创建两个类:TeaMilkStocking、TeaMilkDuck

第三步:选出奶茶组领班、负责告诉具体哪个厨师干活

第四步:制作收银机提供给销售员使用

销售员只需要选择:丝袜奶茶或者鸳鸯奶茶

第五步:客户选购奶茶 PS:代码测试

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年2月18日
下一篇 2020年2月18日

相关推荐