设计模式-工厂模式

工厂模式

工厂顾名思义就是生产、创建产品,是一种创建型模式,能够利用该模式减少if..else语句块的使用,工厂模式分为三种:

  • 简单工厂模式

  • 工厂方法模式

  • 抽象工厂模式

简单工厂模式

UML

简单工厂模式仅仅做了一层简单的封装,通过工厂的参数传递来指定要创建的“产品”

 

代码分析

 

在简单工厂模式中,每增加一个新产品,需要在Factory类中新增一个分支代码,故违反了开闭原则,因此引出了工厂方法模式

工厂方法模式

UML

一种产品对应一个工厂,每个工厂生产特定的一个产品,符合开闭原则

 

代码分析

 

抽象工厂模式

Graphic Design Patterns:在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象。

为了更清晰地理解抽象工厂方法模式,需要先引入两个概念:

  • 产品等级结构 :产品等级结构即产品的继承结构,如一个抽象类是手机,其子类有小米手机、华为手机、苹果手机,则抽象手机与具体品牌的手机之间构成了一个产品等级结构,抽象手机是父类,而具体品牌的手机是其子类。

  • 产品族 :在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品,如小米工厂生产的小米手机、小米手表,小米手机位于手机产品等级结构中,小米手表位于手表产品等级结构中。

UML

 

代码分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值