0
点赞
收藏
分享

微信扫一扫

学习大话设计模式day2

热爱生活的我一雷广琴 2022-03-24 阅读 51
java学习

计算器再松耦合,将每一个计算都当做一个类,使用简单工厂模式进行实例化对象。

创建一个操作工厂类,根据传入的参数创建不同的操作对象(+、-、*、/)

public class OperationFactory {
    public static Operation createOperate(String operate){
        Operation oper = null;
        switch (operate){
            case "+":
                oper = new AddOperation();
                break;
            case "-":
                oper = new SubOperation();
                break;
            case "*":
                oper = new MulOperation();
                break;
            case "/":
                oper = new DivOperation();
                break;
        }
        return oper;
    }
}

再创建一个抽象操作父类:

public abstract class Operation {
    private double numberA = 0d;
    private double numberB = 0d;

    public abstract double getResult() throws Exception;

    public double getNumberA() {
        return numberA;
    }
    public void setNumberA(double numberA) {
        this.numberA = numberA;
    }
    public double getNumberB() {
        return numberB;
    }
    public void setNumberB(double numberB) {
        this.numberB = numberB;
    }
}

再根据不同的操作创建不同的操作类,重新getResult方法:

public class SubOperation extends Operation{

    @Override
    public double getResult() throws Exception {
        double result = 0d;
        result = getNumberA() - getNumberB();
        return result;
    }
}

最后再在前端使用多态的方式来创建操作类,得到结果:

public class ComputerV3 {
    public static void main(String[] args) throws Exception {
        Operation operation = OperationFactory.createOperate("+");
        operation.setNumberA(2.0);
        operation.setNumberB(3.0);
        System.out.println(operation.getResult());

    }
}
举报

相关推荐

FastAPI学习Day2

【vue学习day2】

(学习c)day2

前端学习 day2

Flask学习--Day2

Day2学习笔记

QT学习day2

0 条评论