1.简单工厂模式
作者:互联网
package simpleFactory; /** * 一般情况情况下写几个方法的使用方式 * * @author LiMing E-mail:1151143484@qq.com * @date 2017年6月11日 上午8:46:32 */ public class Commonly { public static void main(String[] args) { //方法1对象 Method1 method1 = new Method1(); method1.oprator(); //方法2对象 Method2 method2 = new Method2(); method2.oprator(); //方法3对象 Method3 method3 = new Method3(); method3.oprator(); } } //方法1实体类 class Method1 { public void oprator() { System.out.println("method1"); } } //方法2实体类 class Method2 { public void oprator() { System.out.println("method2"); } } //方法3实体类 class Method3 { public void oprator() { System.out.println("method3"); } }
package simpleFactory; /** * 简单工厂模式实现 * * @author LiMing E-mail:1151143484@qq.com * @date 2017年6月11日 上午8:53:07 */ public class SimpleFactory { public static void main(String[] args) { //创建方法是通过对象工厂创建 不用使用者知道应该new 那个方法 但是简单工厂模式不符合 开放封闭原则 它对于更改不是封闭的 需要修改工厂类 Method method = Factory.createMethod("4"); method.oprator(); method = Factory.createMethod("5"); method.oprator(); method = Factory.createMethod("6"); method.oprator(); } } // 抽象方法类 abstract class Method { public abstract void oprator(); } // 方法4实体类 class Method4 extends Method { public void oprator() { System.out.println("method4"); } } // 方法5实体类 class Method5 extends Method { public void oprator() { System.out.println("method5"); } } // 方法6实体类 class Method6 extends Method { public void oprator() { System.out.println("method6"); } } // 工厂类 class Factory { public static Method createMethod(String type) { Method method = null; switch (type) { case "4": method = new Method4(); break; case "5": method = new Method5(); break; case "6": method = new Method6(); break; default: break; } return method; } }
我理解的简单工厂模式 就是杂类统一化(搞一个统一的父类Method ),创建统一化(通过Factory创建对象)
也没有很省事儿,因为逻辑中的根据1 2 3 4 创建不同的对象还在 还是需要多次if else 的
标签:Method,oprator,模式,public,class,void,简单,工厂,method 来源: https://blog.51cto.com/u_12198094/2699986