Java设计模式之工厂设计模式似水流年g

工厂模式有多种写法,你可以通过继承父类来实现,实现抽象类的方法或者实现接口。然而工程模式又分两种编写模式,有抽象工厂,简单工厂。我们这里就从简单的工厂模式开始说起,我们要知道工厂模式的目的是什么?工厂模式的目的在于程序的可扩展性。而对于简单工厂模式来说,它是为了让程序有一个更好地封装,降低程序模块之间的耦合程度。

对于简单的工厂模式,其实也可以将其理解成为一个创建对象的工具类。

2.设计模式示例

2.1.示例背景

这里的示例是以吃货点餐做为背景。很多餐厅的点餐步骤呢是餐厅有服务员,每当看见有客人进来的时候会给你一个菜单然后让你挑选自己中意的菜,选择好后呢,服务员在推到厨房去,这个时候厨房会有一个专门查看推送过来的菜单,然后在根据菜品类型给你选择性的交给擅长做炒菜的厨师还是擅长做蒸菜的厨师。那么这里的这个负责查看推送菜单的角色就是我们的工厂模式中的创建者(KitchenFactory)负责根据业务需求来实现对应的逻辑代码或者实例对应的对象。厨房菜品分类员推送到真正的做菜厨师后厨师在进行菜品制作,这里的厨师就是分别Cooking(擅长炒菜类型的厨师),Steamed(擅长蒸菜的厨师)。那么他们都共有一个工作,就是为客户做菜。那么这个共有的动作是不是可以抽象出来。抽象出来后就是Kitchen类,有一个方法叫做菜的动作。(这里可以根据业务需求实现场景来决定是使用抽象类还是接口的方式实现,我这里使用普通的类在被继承。)父类抽出来的这个动作只是负责反馈给传菜员,子类的重写这个动作方法才是具体的描述。

2.2.代码区域

2.2.1.建一个菜单类,用来传递接受菜单信息

/***传递菜单*/publicclassMenuModel{publicStringgetWeight(){returnweight;}publicvoidsetWeight(Stringweight){this.weight=weight;}/***菜名编号*/privateIntegerdish;publicIntegergetDish(){returndish;}publicvoidsetDish(Integerdish){this.dish=dish;}/***分量10,15*/privateStringweight;}2.2.2.建一个厨房类

/***厨房工厂类*/publicclassKitchen{publicvoidcooking(MenuModelmenuModel){System.out.println("菜已制作完成----上菜咯,小二。");}}2.2.3.建一个厨房工厂类

publicclassKitchenFactory{/***厨房工厂-为客户点的菜分类处理后交个后厨进行制作*@parammenuModel*@return*/publicstaticKitchencreateKitchen(MenuModelmenuModel){Kitchenkitchen=null;switch(menuModel.getDish()){case1:/*炒菜*/kitchen=newCooking();break;case2:/*蒸菜*/kitchen=newSteamed();break;}returnkitchen;}}2.2.4.新建擅长做炒菜的厨师类

publicclassCookingextendsKitchen{@Overridepublicvoidcooking(MenuModelmenuModel){System.out.println(String.format("我点菜了,菜名编号:%s,分量是%s",menuModel.getDish(),menuModel.getWeight()));System.out.println("厨房出正在为你炒菜");super.cooking(menuModel);//调用父类的共用方法-反馈制作完毕}}2.2.5.新建擅长做蒸菜的厨师类

publicclassSteamedextendsKitchen{@Overridepublicvoidcooking(MenuModelmenuModel){System.out.println(String.format("我点菜了,菜名编号:%s,分量是%s",menuModel.getDish(),menuModel.getWeight()));System.out.println("厨房抽出正在为你蒸菜");super.cooking(menuModel);//调用父类的共用方法-反馈制作完毕}}2.2.6.新建用户测试类

publicclassOrderTest{publicstaticvoidmain(Stringargs[]){MenuModelmenuModel=newMenuModel();menuModel.setDish(2);menuModel.setWeight("15");Kitchenkitchen=KitchenFactory.createKitchen(menuModel);kitchen.cooking(menuModel);}}2.3.测试工厂模式点菜

2.3.1.点菜品编号为1的菜

我点菜了,菜名编号:1,分量是15厨房出正在为你炒菜菜已制作完成----上菜咯,小二。Processfinishedwithexitcode02.3.2.点菜品编号为2的菜

我点菜了,菜名编号:2,分量是15厨房抽出正在为你蒸菜菜已制作完成----上菜咯,小二。Processfinishedwithexitcode0执行思路总结:这就是工厂模式,使用面向对象编程的三大特性来实现这个工厂模式。博客记录的工厂模式就是简单的工厂模式,也是生活中很常见的模式。其实不难发现工厂模式有点像职责链模式,分工明确,抽象分类。本文为什么没有使用接口或者抽象类来实现工厂模式呢,是因为有没有发现后面还有一句“菜已制作完成----上菜咯,小二。”这样的反馈动作,因为刚好这个动作就是共有的,就没有写抽象类了。直接来实现了。简单明了

THE END
1.蒸菜多种花样做法!bili44333369667默认收藏夹家中来客一定要做的十种蒸菜做法,简单好吃又健康! 菜鸟爱爱吃货 04:22 鸡胸肉最嫩最解馋的做法!椒麻水煮鸡胸肉搭配榨菜肉丝面~ 长得像美食博主的女人 04:15 空气炸锅多种花样做法! 贝贝吃点啥- 5.3万5 今日菜单:挑战100道下饭菜 娃娃菜蒸肉片 https://www.bilibili.com/medialist/play/ml2699228333
2.蒸菜厨师招聘网2025年蒸菜厨师招聘信息猎聘2025年蒸菜厨师招聘信息,海量高薪猎头职位等你来选,了解蒸菜厨师岗位要求、薪资待遇等真实招聘信息,找高薪职位,上猎聘!https://m.liepin.com/zpzhengcaichushi/
3.智能厨师上线,浏阳蒸菜试水智慧餐厅智能厨师上线,浏阳蒸菜试水智慧餐厅 扫码点餐,等待十多分钟,一份热气腾腾的地道浏阳蒸菜就已出炉……在位于长沙开福区北辰三角洲的蒸浏记智慧餐厅,全自动智能蒸菜机格外引人注目。这台由蒸浏记投资2000多万元、历时多年研发的“蒸菜大师”,具备了视觉智能识别和机器人抓手等多种功能,实现了全自动蒸菜和无人http://www.liuyang.gov.cn/lyszf/xxgkml/szfgzbm/sswhzj/gzdt/202212/t20221213_10933992.html
4.蒸美味蒸菜馆加盟费加盟蒸美味蒸菜馆需要投资多少钱?4、无厨师 蒸美味蒸菜馆厨房制作不求人,不用高薪请大厨,一周培训人人会,不用厨师用蒸柜。 5、无灶具 没锅台,没勺铲,不用烹炒不用煎,酌量切好分类放,前后只需一把刀。 6、无积压 蒸美味蒸菜馆销定产,产定购,透明买卖好计划,保证经营快节奏。 7、无经验 蒸美味蒸菜馆饭菜香,学问大,没有基础不用怕https://www.jiamengfei.com/xm/181815
5.芹菜叶别再扔掉了,用厨师长的方法做出来的蒸菜,比肉都好吃PP视频为您提供芹菜叶别再扔掉了,用厨师长的方法做出来的蒸菜,比肉都好吃高清视频在线观看,芹菜叶别再扔掉了,用厨师长的方法做出来的蒸菜,比肉都好吃主要内容:https://v.pptv.com/show/c57vYckvn91AviaY.html
6.蒸菜做法食谱蒸鱼清蒸美食厨师教程大全详解菜谱【29元任选3件】零基础学做蒸菜 少油健康养生饮食 蒸菜菜谱 图解食谱新手入门详解蒸菜做法大全教程厨师书美食清蒸鱼的做法https://www.zhe2.com/note/540346868566
7.厨师长教你做一道“小米蒸五花肉”非常好吃的一道蒸菜,先收藏了厨师长教你做一道“小米蒸五花肉”非常好吃的一道蒸菜,先收藏了 2018-08-08 妹子试吃“老干妈酱汁馍片”,这包装套路太深了,我又被骗了 2018-08-08 虾这样做才好吃,一天三顿都不够!为了这盘虾我和弟弟都绝交了 2018-08-08 不起眼的西葫芦加个鸡蛋加点面粉做成小饼,好吃到欲罢不能 2018-08-08 https://m.56.com/c/v104902573.shtml
8.摄影记者开餐厅,昆明刮起浏阳蒸菜风发了不到一万元的工资,又刷了一万元的信用卡,再找母亲借了五千元。他在报社旁盘下一个20平方米的小店,几个朋友帮忙装修,再托父亲从老家请来一个厨师,外加4个服务员,他在昆明的第一家蒸菜馆就开了起来。 “把湖南二字反过来,加上蒸字,还有我出生的年份”,取名“南湖蒸1983”,文艺青年胡辉试水浏阳蒸菜的https://wap.lyrb.com.cn/content/2017/01/17/6460294.html
9.蒸菜食谱书1688少油降的蒸菜菜谱大全素食肉食浏阳四川蒸菜大全蒸蒸菜食谱书1688少油健康的蒸菜菜谱大全素食肉食浏阳四川蒸菜大全蒸菜制作配方家常菜谱书厨师家用食谱入门学做菜书籍点击进入9.9元专区>> ¥19.60 (1.98折) 降价通知 定价¥99.37 暂无评分 1人评分精彩评分送积分 作者 甘智荣 查看作品 出版 黑龙江科学技术出版社,月 查看作品 分类 图书>烹饪/美食>家常菜谱http://product.dangdang.com/11528067924.html?point=comment_point
10.家用家常食谱做菜烹饪美食做法教程书籍厨师书蒸菜炖菜舌尖上的图书 > 烹饪/美食 > 家常菜谱 > 蒸煮炖家常菜一本就够 食在好吃系列食谱大全家庭厨师清淡炖盅 菜谱书家常菜大全 家用家常食谱做菜烹饪美食做法教程书籍厨师书 蒸菜炖菜舌尖上的中国美食书 蒸煮炖家常菜一本就够 茂源文森图书专营店 杨桃美食编辑部凤凰含章出品著,杨桃美食编辑部编,杨桃美食编辑部译 https://item.jd.com/10094955742457.html
11.郑州夜市阿姨九七年老厨师,炒得馍花加蒸菜,十块钱一份很有河南特色郑州夜市阿姨从九七年做炒饭到现在,老厨师了,炒得馍花可以加蒸菜,很有河南特色,味道很好,真的好赞[强],听阿姨说他还参加过比赛获得过奖章呢#河南美食推荐 #入冬必吃这一碗 #冬日美食x件套 #太好了是夜宵 #烟火气美食 #这口好下饭 #燃烧干饭魂 #这口暖心又暖胃 #得物美食分享家 #美食视频专区 #当地人才https://m.dewu.com/note/trend/details?id=254502447
12.食谱图解制作做法美食厨师烧菜蒸菜凉菜荤菜素食做饭哪个好苏宁易购为您提供广东经济有限公司家常菜谱和家常菜秘诀,这样做最好吃 家常菜菜谱大全 烹饪技巧秘诀新手简单做菜 食谱图解制作做法美食厨师烧菜蒸菜凉菜荤菜素食做饭参数对比,让您了解广东经济有限公司家常菜谱和家常菜秘诀,这样做最好吃 家常菜菜谱大全 烹饪技巧秘诀新https://www.suning.com/prdCom/0070079554-102150538_0070170580-101661213_0-0_0-0.html
13.蒸菜的菜谱做法大全蒸菜怎么做营养好吃特色蒸菜菜谱‘蒸’是中国家庭烹调的一种经典形式,厨师让饭和菜一起蒸,能够一起熟,不仅保持了菜肴的原形、原汁、原味,还能很大程度上保存菜的各种营养素,口味鲜香,嫩烂清爽,形美色艳。蒸菜是一种非常成熟的烹饪方式,我国素有“无菜不蒸”的说法。 蒸菜在烹饪中,既能制作主食,也能制作小吃和糕点。在菜品烹调中,既可用于https://www.xiangha.com/caipu/caidan/676/
14.成都金牛招聘厨师,金牛区工地厨师类别:成都厨师招大锅菜/食堂成都金牛区茶楼招聘厨师一名,家常菜,底薪4000到5000千加任务提成,综合工资5500到 4000-5000元/月 企业认证厨师包住包吃1-2人月结全职 成都茗品轩茶楼有限公司10月29日 13:00拨打电话 成都金牛区马家花园一酒店(筹备中)招聘厨师一名,预计下月开业,酒店七十多间客房。主要工作内 4000-5000元/月 厨师包住包吃社保https://m.yupao.com/zhaogong/218132343.html
15.蒸菜厨师和蒸菜师傅有什么区别说明:蒸菜厨师和蒸菜师傅哪个工资高?蒸菜厨师高于蒸菜师傅。蒸菜厨师平均工资¥5.7K/月,2024年工资¥5.7K,2024年工资高于2023年,蒸菜师傅平均工资¥5.2K/月,2024年工资¥5.3K,与2023年持平,统计依赖于各大平台发布的公开数据,系统稳定性会影响客观性,仅供参考。 https://www.jobui.com/salary/pk/quanguo-zhengcaichushi-pk-quanguo-zhengcaishifu/