简单设计模式比较简单,15分钟的时间,跟着我作,十几分钟学会简单设计模式,开始吧:java
1.使用new实例化一个对象时,你确定知道这种代码缺乏弹性,绑定着具体的类会致使代码更加脆弱,简单工厂模式就是针对接口编程,巧妙的设计解决这个问题。apache
Pizza pizza =new CheesePizza();
2,直接上一个简单工厂模式代码,而后分析。你能够拷贝本身创建如下四个类编程
Pizza类:披萨类设计模式
package com.example.demo.factory; import java.util.ArrayList; public abstract class Pizza { /** * 名称 */ String name; /** * 面团类型 */ String dough; /** * 酱料 */ String sauce; /** * 做料 */ ArrayList<String> toppings = new ArrayList<String>(); void prepare() { System.out.println("准备 " + name); System.out.println("揉面团..."); System.out.println("添加酱料..."); System.out.println("添加做料: "); for (int i = 0; i < toppings.size(); i++) { System.out.println(" " + toppings.get(i)); } } void bake() { System.out.println("烘烤25分钟"); } void cut() { System.out.println("把Pizza对角切片"); } void box() { System.out.println("把Pizza装盒子"); } public String getName() { return name; } }
简单披萨工厂类:SimplePizzaFactory,根据需求建立不一样的披萨eclipse
package com.example.demo.factory; import org.apache.commons.codec.binary.StringUtils; public class SimplePizzaFactory { public Pizza createPizza(String type) { Pizza pizza = null; if (StringUtils.equals(type,"cheese")) { pizza = new CheesePizza(); } else if (StringUtils.equals(type,"veggie")) { pizza = new VeggiePizza(); } return pizza; } }
披萨店类:PizzaStore,生成披萨ide
package com.example.demo.factory; public class PizzaStore { private final SimplePizzaFactory factory; public PizzaStore(SimplePizzaFactory factory) { this.factory = factory; } public Pizza orderPizza(String type) { Pizza pizza; pizza = factory.createPizza(type); pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza; } }
main启动类:this
package com.example.demo; import com.example.demo.factory.Pizza; import com.example.demo.factory.PizzaStore; import com.example.demo.factory.SimplePizzaFactory; public class PizzaApplication { public static void main(String[] args) { SimplePizzaFactory factory = new SimplePizzaFactory(); PizzaStore store = new PizzaStore(factory); Pizza pizza = store.orderPizza("cheese"); System.out.println("We ordered a " + pizza.getName() + "\n"); pizza = store.orderPizza("veggie"); System.out.println("We ordered a " + pizza.getName() + "\n"); } }
将这四个类考入到你的eclipse或者idea运行,恐怕不要过多解释你就能看懂其中的巧妙之处,其实简单工厂不是一个设计模式,反而更像一种编程习惯;idea
运行结果:spa
好了到这我想你拷贝代码大概用了5分钟,接下来十分钟本身分析调用逻辑流程比较好,别人说永远说不清楚,逻辑较为简单,梳理一下就行了,就不详细讲解,相信你能够作到的,在这仅提供一份资源和信念;设计
代码是我本身运行没问题拷贝过来的,若有问题无法运行或者须要详细讲解的请留言,定当回复一块儿探讨!谢谢!