工厂模式
工厂模式最主要解决的问题就是创建者和调用者的耦合,
在代码层面是将通过对不同且相近对象(类似 华为手机和小米手机)的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的抽象类。这下增加工厂也方便了,为什么要把工厂抽象出来呢话说。。。。。。不知道
至于为啥要保留工厂,不直接调用,
懂了吧?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!