工厂模式最主要解决的问题就是创建者和调用者的耦合,
在代码层面是将通过对不同且相近对象(类似 华为手机和小米手机)的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的抽象类。这下增加工厂也方便了,为什么要把工厂抽象出来呢话说。。。。。。不知道
至于为啥要保留工厂,不直接调用,
懂了吧?
标签:factory,模式,工厂,Phone,meizu,new,main From: https://www.cnblogs.com/cocotun/p/17914754.html