设计模式 - 工厂模式

这篇文章会回答下面四个问题

1.工厂模式是要解决什么问题。

2.简单工厂模式解决了什么问题,有什么不足

3.工厂方法模式解决了什么问题,有什么不足

4.抽象工厂模式解决了什么问题,有什么不足


1.工厂模式是要解决什么问题。

简单的对象通过new关键字来创建没有什么问题,当一个对象很复杂,比如,这个对象要依赖很多对象,我根本不想知道他依赖哪些对象,我只想简单的实例化这个对象。简单工厂模式来解决这个需求。


2.简单工厂模式解决了什么问题,有什么不足

简单工厂模式就是一个方法(我们可以称为工厂方法)来创建对象,这个方法返回你需要创建的对象,依赖他都帮你弄好。可以有个缺点,我又新来了一个对象,又要改这个工厂方法,违反了开闭原则,所有的对象,一个工厂来创建有违反了职责单一原则。工厂方法模式来解决这个问题。


3.工厂方法模式解决了什么问题,有什么不足

工厂方法模式就是一个类(我们可以称为工厂类)来创建对象,一个工厂只能创建一种对象,有新对象来,再加一个工厂类,符合开闭原则,一个工厂只创建一个类,符合职责单一原则,完美。可有个问题,我一个系统这么多对象,一个对象一个工厂类,太麻烦了。抽象工厂模式来解决这个问题。


4.抽象工厂模式解决了什么问题,有什么不足

抽象工厂模式就是一个类可以创建一组或者相互依赖的对象,比如我需要一个自行车的对象,车轮,车座这些对象的创建都用一个工厂类来创建,这个工厂类就不会很多了。


题外话

我的设计模式系列文章,重在帮忙大家一起理解各种设计模式,不会写具体的代码实现,具体实现自行查阅其它文档(我不会告诉你,是我赖的费时间上传代码大笑


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值