简单工厂模式

Android进阶之设计模式

简单工厂模式

简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不属于23种Gof设计模式之一.

定义: 简单工厂模式属于创建型设计模式,又叫作静态工厂方法模式,这是由一个工厂对象决定创建出哪一种产品类的实例.
使用场景:

  1. 工厂类负责创建的对象比较少.
  2. 客户只需知道传入工厂类的参数,而无需关心创建对象的逻辑.

优点: 使用户根据参数获得对应的类实例,避免了直接实例化,降低了耦合性.

缺点:可实例化的类型在编译期间已经被确定.如果增加新的类型,则需要修改工厂,这违背了开闭原则.简单工厂需要知道多有要生成的类型.当子类过多或者子类层次过多时不适合使用.

下面演示一个例子:

创建一个抽象产品类

public abstract class Computer {


    /**
     * 产品的抽象方法,由具体的产品类实现
     * */

    public abstract void start();
}

具体产品实现类

public class LenovoComputer extends Computer {
    @Override
    public void start() {
        System.out.println("联想计算机启动");
    }
}

public class HpComputer extends Computer {
    @Override
    public void start() {
        System.out.println("惠普计算机启动");
    }
}

...

工厂类


public class ComputerFactory {

    public static Computer createComputer(String type){
        Computer computer = null;
        switch (type){
            case "lenovo":
                computer = new LenovoComputer();
                break;
            case "hp":
                computer = new HpComputer();
                break;

        }
        return computer;
    }
}

客户调用工厂类

public static void main(String[] args) {
    // write your code here

        ComputerFactory.createComputer("lenovo").start();

    }
    

这就是简单工厂模式

你可能感兴趣的:(简单工厂模式)