Java设计模式之工厂设计模式

1.什么是-工厂设计模式

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

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

2.设计模式示例

2.1.示例背景

Java设计模式之工厂设计模式

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

2.2.代码区域

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

/** * 传递菜单 */ public class MenuModel { public String getWeight() { return weight; } public void setWeight(String weight) { this.weight = weight; } /** * 菜名编号 */ private Integer dish; public Integer getDish() { return dish; } public void setDish(Integer dish) { this.dish = dish; } /** * 分量 10,15 */ private String weight; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzzps.html