设计模式之工厂模式

本文介绍工厂模式的基本概念,通过创建一个车工厂类实例化不同类型的车,如宝马、奔驰等,并探讨其优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工厂模式,创建型模式


顾名思义,工厂是用来生产批量货物的,比如你是4S店,你现在需要宝马、奔驰、保时捷车辆,你只需要把提货单交给工厂,然后工厂根据提货单将车辆送到你家4S店,你并不需要知道制作车的流程,这就是所谓的工厂。映射到类中,我们需要创建一个车工厂类(CarFactory),我们需要什么,比如宝马,就告知工厂类,然后让工厂类来进行实例化。


步骤1:创建接口Car


步骤2:创建实体类Benz(奔驰)、BMW(宝马)、等等,这些类去实现接口Car



步骤3:创建一个工厂,用来造这些车,也就是根据用户的要求来实例化哪种车。


步骤4:实体类已创建好,共产类也创建好,现在S4店发来提货单,我们需要根据提货单来实例化车的对象



步骤5:通过步骤4实例化了奔驰车和宝马车,那就可以将这些车送到4S店了。


如果4S店又新增保时捷车提货单,则应该怎么办呢?

首先:创建实体类Porsche(保时捷),



然后:在工厂类中新增Porsche的实例化,更改如下:


最后:在FactoryPatternDemo中,将所需要的提货单传给工厂。

工厂类的优点:不需要知道产品内部是怎么构造的,只需要知道名字就行,其他内部实现交给工厂类

工厂类的缺点:增加了一个Porsche车,则需要增加Porshce具体类,然后在工厂类需要去实现,

需要修改工厂类,当产品过多时,则需要经常修改工厂类,不符合“对扩展开放,对修改关闭”的原则。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值