二、使用简单工厂
类图
基本介绍
简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式
简单工厂模式定义了一个创建对象的类,由这个类来封装实例化对象的行为(代码)
在软件开发中,当我们会用到大量的创建某种、某类或者某批对象时,就会使用到工厂模式
步骤概括
步骤一:创建简单工厂
public class SimpleFactory { public static Pizza createPizza2(String orderType) { Pizza pizza = null; if ("beef".equalsIgnoreCase(orderType)) { pizza = new BeefPizza(); pizza.setName(" beef "); } else if ("cheese".equalsIgnoreCase(orderType)) { pizza = new CheesePizza(); pizza.setName("cheese"); } return pizza; } }
分析: 简单工厂又叫做静态工厂,我们写一个静态方法,可以方便后面代码的调用,这里用到的类,跟用传统方法用到的类一样,没有改变
步骤二:制定订购披萨类
public class OrderPizza2 { public OrderPizza2() { do { String orderType = getType(); Pizza pizza = SimpleFactory.createPizza2(orderType); if (pizza != null) { pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); } else { System.out.println(" 订购披萨失败 "); break; } } while (true); } private String getType() { try { BufferedReader strin = new BufferedReader(new InputStreamReader(System.in)); System.out.println("input pizza 种类:"); String str = strin.readLine(); return str; } catch (IOException e) { e.printStackTrace(); return ""; } } }
分析: 该类的构造器中用到了简单工厂类SimpleFactory,这样,我们就不需要在订购披萨这一行为中去写增加新的披萨的代码了,而是从工厂中写添加新的披萨的代码,就不用再改动这个类。
运行结果:
优点分析
使用简单工厂模式来创建对象,更加的方便灵活,不需要修改订购披萨的逻辑