简单工厂模式

126 阅读1分钟
定义

简单工厂模式(Simple Factory Pattern)又叫作静态工厂方法模式(Static Factory MethodPattern),简单来说,简单工厂模式有一个具体的工厂类,可以生成多个不同的产品,属于创建型设计模式。

应用场景

对于产品种类相对较少的情况,考虑使用简单工厂模式可以很方便地创建所需产品。

UML类图

未命名文件.jpg

核心角色

(1)简单工厂(SimpleFactory):是简单工厂模式的核心,负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。

(2)抽象产品(IProduct):是简单工厂创建的所有对象的父类,负责描述所有实例共有的公共接口。

(3)具体产品(ConcreteProduct):是简单工厂模式的创建目标。

public class Client{
    psvm(){
        new SimpleFactory.makeProduct(1);
    }
}
// 抽象产品
public interface IProduct{
    void doSomething();
}

// 具体产品
static class ProductA implements IProduct {
	public void doSomething() {
        System.out.println("I am product A");
    }
}

static class ProductB implements IProduct {
	public void doSomething() {
        System.out.println("I am product B");
    }
}

static class ProductC implements IProduct {
	public void doSomething() {
        System.out.println("I am product C");
    }
}
static class SimpleFactory{
    public static IProduct makeProduct(int kind) {
        switch(kind) {
            case 0:
		return new ProductA();
            case 1:
		return new ProductB();
            case 2:
		return new ProductC();
        }
        return null;
    }
}

Logback源码中的应用

image-20210523003116443.png