定义
简单工厂模式(Simple Factory Pattern)又叫作静态工厂方法模式(Static Factory MethodPattern),简单来说,简单工厂模式有一个具体的工厂类,可以生成多个不同的产品,属于创建型设计模式。
应用场景
对于产品种类相对较少的情况,考虑使用简单工厂模式可以很方便地创建所需产品。
UML类图
核心角色
(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源码中的应用