工厂模式

Posted mabaoqing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂模式相关的知识,希望对你有一定的参考价值。

实现了创建者和调用者的分离

简单工厂模式:

  • 只有一个工厂,返回不同类型的产品
/**
 * 简单工厂模式又称静态工厂模式,增加新产品必须修改代码或修改配置文件
 */
public class AnimalFactory{
  // 方法一,直接返回一个实际对象
  public static Cat createCat() {
     return new Cat();
  }
  public static Dog createDog() {
     return new Dog();
  }
  //方法二,利用多态返回一个实现了接口对象
  public static Animal createAnimal(String type) {
     if(type.equals("cat")) {
         Animal cat = new Cat();
         return cat;
     } else if(type.equals("dog")) {
         Animal dog = new Dog();
         return dog;
     }
     return null;
  }
 
  // 方法三,可以利用类名返回对象,使用properties配置文件

}

工厂方法模式:

  • 概述:定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。
  • 适用性:
    • 当一个类不知道它所必须创建的对象的类的时候
    • 当一个类希望由它的子类来指定它所创建的对象的时候
    • 当类将创建对象的职责委托给多个帮助子类的某一个,并且你希望将哪一个帮助子类是代理这一信息局部化的时候
    • 便于增加新产品,只需增加产品和产品工厂类并实现相应的接口

技术图片

抽象工厂模式:

技术图片

小结:

? 一般不会直接代码new工厂对象(单例工厂方法),可以在配置中指定,这样一来客户就只能够看到抽象的类,接触不到具体实现。

? 工厂模式的经典案例:BeanFactory、SessionFactory

以上是关于工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式学习——简单工厂模式工厂模式抽象工厂模式

设计模式简单工厂模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )

设计模式学习——简单工厂模式工厂模式抽象工厂模式

设计模式工厂方法模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )

设计模式-简单工厂工厂方法模式抽象工厂模式详解

C++工厂模式(简单工厂工厂方法抽象工厂)