美文网首页
【设计模式】1.简单工厂模式

【设计模式】1.简单工厂模式

作者: JakeGao | 来源:发表于2019-08-15 00:12 被阅读0次

考虑这样一个场景:
实现一个计算器,包括加减两种运算方法,使用Operation类作为父类,加减两个子类继承该父类。再通过一个简单工厂来根据客户端需要的运算类型返回具体的运算类完成运算。

Operation类

@NoArgsConstructor
@AllArgsConstructor
@Data
public class Operation {
    private int num1;
    private int num2;

    public Integer getResult() {
        return 0;
    }
}

两个子类:OperationAdd和OpeartionMin

public class OperationAdd extends Operation{
    @Override
    public Integer getResult() {
        return this.getNum1() + this.getNum2();
    }
}
public class OperationMinus extends Operation{
    @Override
    public Integer getResult() {
        return this.getNum1() - this.getNum2();
    }
}

以及最重要的简单工厂类:

public class OperationFactory {
    public static Operation getInstance(String type) {
        switch (type) {
            case "-": return new OperationMinus();
            case "+": return new OperationAdd();
            default: return null;
        }
    }
}

静态方法getInstance根据传入的type类型获取实例
测试代码如下:

public class Client {
    public static void main(String[] args) {
        int a = 1, b = 2;
        Operation operation = OperationFactory.getInstance("+");
        operation.setNum1(a);
        operation.setNum2(b);
        System.out.println(operation.getResult());

        a = 99;
        b = 109023;
        Operation operation2 = OperationFactory.getInstance("-");
        operation2.setNum1(a);
        operation2.setNum2(b);
        System.out.println(operation2.getResult());
    }
}

简单工厂模型就是根据传入的type类型来获取对应的实例,由于这些实例都继承一个基类或实现了一个接口,客户端在使用这些实例时可以通过这个基类或接口去调用对应方法。
使用这种设计模式的好处是显而易见的,假如现在要增加一个新的计算方法:除法。那么原先的算法类不需要做任何改动,直接添加一个新的Operation子类OperationDiv类实现除法运算,并且添加进工厂的switch模块中即可,拓展性良好,且客户端使用时也不需要去关心这些类的创建逻辑。
这种设计模式体现了面向对象的继承以及多态。

相关文章

  • iOS设计模式-工厂模式

    工厂模式分为简单工厂模式,工厂模式、抽象工厂模式三类。 简单工厂模式 1. 定义 简单工厂模式并不是常用的设计模式...

  • 三、创建型模型

    简单工厂模式 工厂方法模式 抽象工厂模式 单例模式 1.简单工厂模式 简单工厂模式并不属于23种设计模式。 不难看...

  • 设计模式之工厂模式

    设计模式之工厂模式 1. 简单工厂模式 1.1 模式定义 简单工厂模式又称为静态工厂方法,它属于创建型模式。在简单...

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 创建型模式

    工厂模式(简单工厂(不属于23种设计模式)、工厂方法、抽象工厂) 建造者模式 单例模式 原型模式 1.简单工厂(静...

  • 设计模式一、单例模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 简单单例(推荐...

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • 【重温设计模式】工厂设计模式

    一.介绍 工厂设计模式的分类 1.简单工厂模式2.工厂方法模式3.抽象工厂模式 工厂设计模式在工作中的应用 1.s...

  • 设计模式三、工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 工厂模式 在一...

  • Java 设计模式1-简单工厂模式

    简单工厂模式不属于标准的Java 23设计模式之内。根据分类,简单工厂模式又分类为:1.普通简单工厂模式。2.多方...

网友评论

      本文标题:【设计模式】1.简单工厂模式

      本文链接:https://www.haomeiwen.com/subject/mhiojctx.html