使用设计模式实现计算器功能

操作流程

首先,我们需要告诉你整个实现计算器功能的流程,可以用表格展示步骤:

步骤 操作
1 创建一个接口CalculatorOperation,定义计算器操作的方法
2 创建实现CalculatorOperation接口的加法、减法、乘法、除法等具体操作类
3 创建一个CalculatorContext类,用于保存当前的计算器操作
4 创建一个Calculator类,用于接收用户输入并执行相应操作
5 在主程序中实例化Calculator类并调用相应方法

代码实现

1. 创建CalculatorOperation接口

// 定义计算器操作的接口
public interface CalculatorOperation {
    public int calculate(int num1, int num2);
}

2. 创建加法、减法、乘法、除法等具体操作类

// 加法操作类
public class Addition implements CalculatorOperation {
    @Override
    public int calculate(int num1, int num2) {
        return num1 + num2;
    }
}

// 减法操作类
public class Subtraction implements CalculatorOperation {
    @Override
    public int calculate(int num1, int num2) {
        return num1 - num2;
    }
}

// 乘法操作类
public class Multiplication implements CalculatorOperation {
    @Override
    public int calculate(int num1, int num2) {
        return num1 * num2;
    }
}

// 除法操作类
public class Division implements CalculatorOperation {
    @Override
    public int calculate(int num1, int num2) {
        if (num2 == 0) {
            throw new IllegalArgumentException("除数不能为0");
        }
        return num1 / num2;
    }
}

3. 创建CalculatorContext类

public class CalculatorContext {
    private CalculatorOperation operation;

    public void setOperation(CalculatorOperation operation) {
        this.operation = operation;
    }

    public int executeOperation(int num1, int num2) {
        return operation.calculate(num1, num2);
    }
}

4. 创建Calculator类

import java.util.Scanner;

public class Calculator {
    public static void main(String[] args) {
        CalculatorContext context = new CalculatorContext();
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入第一个数字:");
        int num1 = scanner.nextInt();
        System.out.println("请输入第二个数字:");
        int num2 = scanner.nextInt();

        System.out.println("请选择操作:1.加法 2.减法 3.乘法 4.除法");
        int choice = scanner.nextInt();

        CalculatorOperation operation = null;
        switch (choice) {
            case 1:
                operation = new Addition();
                break;
            case 2:
                operation = new Subtraction();
                break;
            case 3:
                operation = new Multiplication();
                break;
            case 4:
                operation = new Division();
                break;
            default:
                System.out.println("请选择正确的操作!");
                break;
        }

        context.setOperation(operation);
        int result = context.executeOperation(num1, num2);
        System.out.println("计算结果为:" + result);

        scanner.close();
    }
}

序列图

sequenceDiagram
    participant User
    participant Calculator
    User->>Calculator: 输入数字和操作
    Calculator->>CalculatorContext: 设置操作
    CalculatorContext->>CalculatorOperation: 执行计算
    CalculatorOperation->>CalculatorContext: 返回结果
    CalculatorContext->>Calculator: 返回结果
    Calculator->>User: 输出结果

旅行图

journey
    title 实现计算器功能的旅程
    section 创建CalculatorOperation接口
    section 创建加法、减法、乘法、除法等具体操作类
    section 创建CalculatorContext类
    section 创建Calculator类
    section 主程序执行

通过以上步骤和代码,你就可以实现使用设计模式来实现计算器功能了。希望这篇文章可以帮助你更好地理解和应用设计模式在实际开发中的作用。祝你编程愉快!