定义

定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。


UML图例

简单工厂模式


实例代码

// Product 抽象产品角色
abstract class Product {
    // 所有产品的公共业务方法
    public void methodSame(){}

    // 声明抽象业务方法
    public abstract void methodDiff();
}


// ConcreteProduct 具体产品角色
public class ConcreteProductA extends Product{
    //业务方法
    public void methodDiff() {
        //业务方法的实现
    }
}

public class ConcreteProductB extends Product{
    //业务方法
    public void methodDiff() {
        //业务方法的实现
    }
}

// Factory 工厂角色
public class Factory {
    // 静态工厂方法
    public static Product getProduct(String arg){
        Product product = null;
        if (arg.equalsIgnoreCase("A")){
            product = new ConcreteProductA();
        }else if(arg.equalsIgnoreCase("B")){
            product = new ConcreteProductB();
        }
        return product;
    }
}
  1. Factory:工厂类,它是简单工厂模式的核心,负责创建所有产品实例的内部逻辑,工厂类可以被外界直接调用,创建所需的产品对象。
  2. Product:抽象产品类,它是工厂类所创建所有对象的父类(或者接口)。封装了各种产品对象的公有方法,它的引入使得工厂类只需定义一个通用的工厂方法,因为所有创建的具体产品对象都是其子类(或者实现接口的实现类)。
  3. ConcreteProduct:具体产品类,它是简单工厂模式的最终创建目标,每一个具体产品类都继承(或实现)了抽象产品类。需要实现在抽象产品类中声明的抽象方法。
最后修改:2020 年 05 月 21 日
如果觉得我的文章对你有用,请随意赞赏