跳到主要内容

设计模式之简单工厂模式

简单工厂模式定义

简单工厂模式(Simple Factory Pattern)即利用一个中间类,通过指定参数的方式来获得不同的实例。简单工厂的目的在于隔离调用者和实例之间的联系,使得调用者可以更加灵活的获得实例。在简单工厂中,生产实例所用的参数既可以来自硬编码,可以来自外部输入。简单工厂仅适用于实例类型较少的情况。

简单工厂模式的实现

实现简单工厂模式需要注意以下几点:

  1. 调用者只知道参数,而不是具体的类
  2. 调用者通过抽象产品来使用具体产品
  3. 具体产品由简单工厂通过各种方式生产
// 简单工厂
public class SimpleFactory {
// 静态方法,用于判断参数,生产具体的产品
public static Product create(String name) {
switch (name) {
case "one":
return new OneProduct();
case "two":
return new TwoProduct();
default:
return null;
}
}
}

// 抽象产品
public abstract class Product {
public abstract void something();
}

// 具体产品
public class OneProduct extends Product {
@Override
public void something() {
System.out.println("这是产品1");
}
}

public class TwoProduct extends Product {
@Override
public void something() {
System.out.println("这是产品2");
}
}

测试:

public class Main {
public static void main(String[] args) {
Product product1 = SimpleFactory.create("one");
Product product2 = SimpleFactory.create("two");
product1.something();
product2.something();
}
}

结果:

这是产品1
这是产品2