工厂模式

发布时间 2023-12-19 21:13:17作者: 子过杨梅

工厂模式最主要解决的问题就是创建者和调用者的耦合,

在代码层面是将通过对不同且相近对象(类似 华为手机和小米手机)的new创建方式,统一起来。

1.简单工厂模式

 

 由phone作为两手机的统一接口,使得factory直接返回phone即可,无需考虑xiaomi与meizu的返回不兼容问题,而factory能够帮助全部在main方法中new的形式统一起来,便于管理

例如:

开始
main:
Meizu meizu = new Meizu();
Xiaomi xiaomi = new Xiaomi();

...
改变后
main:
Factory factory = new Factory();
Phone meizu = factory.make("meizu“);
Phone xiaomi = factory.make("xiaomi“);

...

 

 基于上图,就假如,万一现在又出来一个叫火锅牌子的手机,我们当如何应对呢?要改的话,是不是需要进入我们的facory类修改,如果这样改,那么内个逼原则(对修改关闭对扩展开放的傻逼原则)就不乐意了,怎么办?只能把factory拿出来(我知道会有人好奇为什么不取消,你别急,往下慢慢看,你会知道的)

 

2.工厂模式

我们来分离出来factory,而main方法以这样的形式呈现

main:
Phone meizu = new Meizu.Phone();
Phone xiaomi = new Xiaomi.Phone();

...

 

3.抽象工厂模式

 (刚才能白嫖图片的作者没写抽象工厂,草,只能自己画了)

注意嗷,它底下是Factory的抽象类。这下增加工厂也方便了,为什么要把工厂抽象出来呢话说。。。。。。不知道

 

至于为啥要保留工厂,不直接调用,

 懂了吧?