目录:
(1)工厂模式
简单工厂:
工厂方法模式:
(2)抽象工厂模式
(1)工厂模式
简单工厂:
原来的方式使用new: 需要关心细节,如何创建对象
创建一个车工厂:
使用了工厂之后,无需关心底层的细节,只需要调用方法获取就行,无需关注工厂的实现细节
如果想要再增加一个车,需要在工厂里面添加,需要更改代码工厂的方法一,不满足了OOP原则,可以添加方法二,如果需要添加车,只需要在工厂里添加代码,还是不满足开闭原则
新增加一个大众车:
这时候需要更改车工厂的代码:
工厂方法模式:
给工厂创建一个汽车工厂接口:
创建TeslaFactory工厂
如果需要在增加一个车:
再创建一个摩拜单车的工厂,我们没有改变原来的类 车工厂类:
原来的类我们没有改动,就满足了开闭原则,但是这样的话每增加一个车类,就需要增加一个车的工厂类,代码会增加很多
两种模式的比较:
比如还会涉及到很多的接口,简单的工厂模式就解决不了,就引申出来抽象工厂模式
(2)抽象工厂模式
工厂的工厂
创建手机接口
创建路由接口:
创建工厂接口:工厂的工厂
创建小米工厂:
创建华为工厂: