码迷,mamicode.com
首页 > 编程语言 > 详细

Java代码实现设计模式之工厂模式

时间:2020-04-06 17:47:25      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:simple   cto   turn   equals   ret   exce   override   interface   简单工厂模式   

工厂设计模式:为了解耦合,把对象的创建者与对象的使用者分开。
  生活中:批量生产产品
  Java中:批量生产对象

分工:
  把生产(创建)对象与使用对象分开了,解耦合

1、简单工厂模式
  优点:代码比较简洁
  缺点:如果增加新的产品类型,需要修改工厂类
  违反了面向对象的一个开发原则:对扩展开放,对修改关闭

2、工厂方法模式

  (1)为了生产对象与使用对象分开
  (2)如果增加新产品,就不需要修改原来的工厂类
  优点:遵循了增加新产品,不修改原来的类的原则,
  缺点:类太多了

示例:简单工厂模式

class SimpleFactory2{
  public static Car getCar(String type){
    if("BMW".equals(type)){
      return new BMW();
    }else if("BZ".equals(type)){
      return new Benz();
    }
    return null;
  }
}

示例:工厂方法模式

interface Factory{
  VehiCle getVehiCle ();
}

class BMWFactory implements Factory{

  @Override
  public Che getChe() {
    return new BaoMa();
  }
}
class BZFactory implements Factory{

  @Override
  public Che getChe() {
    return new BZ();
  }
}

......

示例:使用反射,结合工厂方法模式与简单工厂模式

class SimpleFactory{
  public static Vehicle getVehicle(String className)throws Exception{
    Class clazz = Class.forName(className);

    Object obj = clazz.newInstance();

    if(obj instance of Vehicle){

      return (Vehicle) obj;  

    }
    return null;
  }
}

Java代码实现设计模式之工厂模式

标签:simple   cto   turn   equals   ret   exce   override   interface   简单工厂模式   

原文地址:https://www.cnblogs.com/dirsoen/p/12642817.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!