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 的

 

 

 

 

©著作权归作者所有:来自51CTO博客作者木子的昼夜的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 2.策略模式
  2. 5.依赖倒转原则
  3. 10.模板方法模式
  4. 8.工厂方法
  5. 7.代理模式
  6. 19.组合模式
  7. JS中的值传递,模板字面量,数组、对象、传参解构,访问器属性
  8. 【收藏】最全JavaScript中所有的内置对象属性和方法汇总整理
  9. 微信小程序或公众号以及特殊表情,昵称等存入MySQL报错问题

随机推荐

  1. 如何创建一个新表,该表根据名称获取其他表
  2. 错误1452:无法添加或更新子行:外键约束失败
  3. 分页查询-sql优化
  4. 防止左连接中的重复值
  5. MySql随笔part3 表操作
  6. MYSQL 导入53M数据报错
  7. 为什么我的变量在TCPDF中没有定义?
  8. 加入vs多个数据副本:性能
  9. 这是什么原因啊,没有找出错来啊(数据库用的
  10. mysql - 如果“a”==“b”回显“折扣”