设计模式 —— 工厂模式

目录

  • 概述
  • 实现
  • 优缺点

概述

工厂模式(Factory Pattern)是创造型设计模式的一种,它提供了一种创建对象的最佳方式:不对对象暴露创建逻辑,而是通过共同的接口指向新创建的对象

定义:创建对应对象的工厂类,将创建对象的工作交给工厂,提供信息使工厂生产复杂对象

使用场所:任何需要生成复杂对象的地方

实现

(工厂方法模式:建立统一的工厂接口,具体类的工厂实现公共接口)

// 实现一个计算机基本的加减乘除运算
// 工厂接口
public interface IFactory {
    Operation CreateOption();
}

// 加法类工厂
public class AddFactory implements IFctory {
    public Opetation CreateOption() {
        return new OperationAdd();
    }
}
// 减法类工厂
public class SubFactory implements IFctory {
    public Opetation CreateOption() {
        return new OperationSub();
    }
}
// 乘法类工厂
public class MulFactory implements IFctory {
    public Opetation CreateOption() {
        return new OperationMul();
    }
}
// 除法类工厂
public class DivFactory implements IFctory {
    public Opetation CreateOption() {
        return new OperationDiv();
    }
}

优缺点

优点:符合开闭原则,客户端可以不需要知道具体产品的类名,只需要知道对应工厂,一个类的创建是通过其子类的指定生成,子类对象会覆盖父类对象

缺点:代码更多了,要管理的对象也就更多了