简单工厂模式

什么是工厂模式

 实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式

 

工厂模式好处

工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。

利用工厂模式可以降低程序的耦合性,为后期的维护修改提供了很大的便利。

将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。

 

工厂模式分类

 

 

简单工厂模式

简单工厂模式相当于是一个工厂中有各种产品,创建在一个类中,客户无需知道具体产品的名称,只需要知道产品类所对应的参数即可。但是工厂的职责过重,而且当类型过多时不利于系统的扩展维护。

 

大家注意 工厂和容器的概念, 容器存放,工厂创建。

 请看目录结构:

 

 Car接口定义:

package FactoryModel;

//汽车厂
public interface Car {
   void run();
}

实现类,各种车型:

package FactoryModel;

public class BydCar implements Car {

    @Override
    public void run() {
        System.out.println("比亚迪run");
        
    }
    
}
package FactoryModel;

public class JiLiCar implements Car {

     @Override
    public void run() {
        
       System.out.println("吉利run");    
    }
    
}

定义工厂:

package FactoryModel;

//汽车厂
public class CarFactory {
   
 public static Car createCar(String name){
     
       if (name.equals("比亚迪")) {
        return new BydCar();
    }
      if (name.equals("吉利")) {
        return new JiLiCar();
    }
      //其他类型的
        return null;
    }    
}

定义客户端:

package FactoryModel;

public class Client {

      public static void main(String[] args) {
         Car byd = CarFactory.createCar("比亚迪");  //类比线程池的创建哦
        byd.run();
    }
    
}

运行结果:

简单工厂模式:里面的场景多 传递参数 返回具体产品 但是类型很多时候就影响扩展性了 很麻烦了

 

单工厂的优点/缺点

优点:简单工厂模式能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。明确区分了各自的职责和权力,有利于整个软件体系结构的优化。

缺点:很明显工厂类集中了所有实例的创建逻辑,容易违反GRASPR的高内聚的责任分配原则

 

 

简单工厂模式  又叫 静态工厂方法模式  它定义一个具体的工厂类负责创建一些类的实例

  优点  客户端不需要负责对象的创建  从而明确了个各类的职责

  缺点  这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护

 

posted @ 2018-10-27 19:39  toov5  阅读(121)  评论(0编辑  收藏  举报