当前位置: 首页 > 后端技术 > Java

面试官:什么是工厂方法模式?

时间:2023-04-01 17:47:08 Java

师傅常怀徒弟之心给大家福利!回复【项目】有一些项目源码我给大家准备好了。回复【简历模板】我有一份简历模板给你。文章目录前言1.访谈2.总结前言今天的电子缝纫机工厂依然如火如荼。年轻人非常有动力娶他们的妻子。脚下缝纫机的踏板冒着烟。正在众志成城的时候,突然厂房的门被人从外面推开,进来了一位新同事。本着闲不下来就得看的原则,我慢慢将目光移到了门和其他人一样。咦~这人怎么这么眼熟?这不是网红电池哥吗?他怎么会来上班。中午吃饭的时候,找到了电池哥。我:“电瓶哥,你说打工不行,干嘛来这里打工。”电池哥:“我不是来上班的,我是来上班的。”我:“你到底在做什么?”我无语……我很好奇谁告诉你你来打工的。妻子。我:“这个广告真的很有效,通俗易懂,很吸引人。”就在这时,我的手机突然响了起来。我:“喂,这是谁啊!”对方:“我,我昨天打电话给你面试了,你现在方便吗,待会再聊。”我:“方便,只要我上班时间接个电话就方便了。”1.面试面试官:今天我们来聊聊工厂方法模式,能谈谈您对工厂方法模式的理解吗?我:工厂方法模式是简单工厂模式的扩展。它继承了简单工厂模式的优点,弥补了简单工厂模式的缺点。面试官:能谈谈工厂方法模式相对于简单工厂模式的优势吗?我:在工厂方法模式下,我们工厂类里面的逻辑对应的就是传入的参数,也就是说,如果你要买苹果,那么工厂类里面就必须有判断逻辑,根据参数生成一个苹果实例appleparameters,当你突然想吃菠萝的时候,如果之前工厂类中没有这块逻辑,你就得把这块逻辑加到工厂类中,这样就会频繁修改工厂类中的代码,这样就不会符合开闭原则。工厂方法模式在工厂类和产品之间添加一个特定的工厂。我们具体的产品是通过具体的工厂生产出来的,不需要修改工厂类中的逻辑。比如我们曾经是“真香果园”。如果你想吃苹果,就打电话给我们工厂,我们会寄给你一盒苹果。但是现在我们的业务扩大了,我们开始养家禽。想吃鸡也可以叫我们,只是这个时候叫“真香果园”有点不合适。所以现在我成立了一个奇科集团,你想吃什么就叫奇科集团,你想吃苹果就叫奇科集团,然后奇科集团就给它的下属“香甜果园”叫你去邮一箱苹果,你要吃鸡,你也叫奇科集团,然后奇科叫你下属“振祥鸡圈”给你寄一只鸡。面试官:那你说说工厂方法模式有什么作用1.Product(抽象产品):就是定义产品的接口,这里相当于一个水果箱或者鸡笼。2.ConcreteProduct(具体产品):他实现了抽象的产品接口,相当于3.Factory(抽象工厂):相当于这里的志高集团,用来接客户的电话,然后给客户一盒水果或者一笼鸡。4.ConcreteFactory(具体factory):在这里他相当于“真香果园”或者“真香鸡圈”。他负责接听群里的电话,然后给群里相应的产品。面试官:你能写出具体的代码来描述工厂方法模式吗?1.首先定义一个盒子接口,代表一个抽象的产品角色publicinterfaceBox{publicvoidshow();}2.然后定义一个Apple类,代表一个具体的产品公共类AppleimplementsBox{@Overridepublicvoidshow(){System.out.println("我买了一盒苹果");}}3.然后定义一个QGGroup类,代表抽象工厂publicinterfaceFactoryQG{publicvoidshow(Stringname);//抽象工厂方法}4.然后定义一个“真香”类,代表一个具体的工厂")){box=newApple();盒子.显示();System.out.println("真香果园苹果,50元一盒");}}}5.最终测试publicclassTest{publicstaticvoidmain(String[]args){FactoryQGfactoryQG=newZxy();factoryQG.show("Apple");}}通过上面的过程我们可以看出,如果此时我们需要添加一个“鸡圈”,只需要添加具体的工厂类即可,不需要修改代码抽象工厂类对扩展开放,对修改关闭。面试官:是的,小伙子,你什么时候有时间进公司?我:说吧,我先把我手里的那条秋裤缝完。..2.总结这里的相关内容没有整理,后面会继续更新文章,建议收藏。文中涉及的命令必须像我一样多敲几次。只有在敲打的过程中,才能发现自己是否真正掌握了命令。如果觉得我的文章还不错,请点个赞。另外可以微信搜索【小七JAVA专访】第一时间阅读,回复【资讯】我已经为你准备好了福利!回复【项目】有一些项目源码我给大家准备好了。回复【简历模板】我有一份简历模板给你。