zoukankan      html  css  js  c++  java
  • 简单工厂模式 实现加减乘除

    1.创建运算的接口

    public interface Operation {
        //提供计算两个数字的方法
        double getResult(double num1,double num2);
    
    }

    2.创建对应的加减乘除四个实现类

    public class Addition implements Operation { //加法
    
        @Override
        public double getResult(double num1, double num2) {
            return num1+num2;
        }
    
    }
    public class Minus implements Operation { //减法
    
        @Override
        public double getResult(double num1, double num2) {
            return num1-num2;
        }
    
    }
    public class Multiplication implements Operation {//乘法
    
        @Override
        public double getResult(double num1, double num2) {
            return num1*num2;
        }
    
    }
    public class Division implements Operation {//除法
    
        @Override
        public double getResult(double num1, double num2) {
            return num1/num2;
        }
    }

    3.创建工厂类

    public class OperationFactory {  //计算机的工厂类
        /*
         * 工厂模式 是我们最常用的实例化对象的模式!
         * 用工厂的方法替代new!
         * 虽然代码量没有减少  但是 提高了程序的扩展性!
         */
        public static  Operation  getOperation(String o){
            Operation operation=null; //多态
            switch (o) {
            case "+":
                operation=new Addition();
                break;
            case "-":
                operation=new Minus();
                break;
            case "*":
                operation=new Multiplication();
                break;
            case "/":
                operation=new Division();
                break;
            }
            return  operation;
        }
    }
     

    4.创建测试类 运行 测试结果

    public class FactoryTest {
        public static void main(String[] args) {
            Scanner scanner=new Scanner(System.in);
            System.out.println("请输入第一个数字:");
            double num1 = scanner.nextInt();
            System.out.println("请输入运算符:");
            String operation = scanner.next();
            System.out.println("请输入第二个数字:");
            double num2 = scanner.nextInt();
            //创建运算的实例对象
            Operation o = OperationFactory.getOperation(operation);
            //输出结果
            System.out.println(o.getResult(num1, num2));
        }
    }
  • 相关阅读:
    How to resolve mysql problem when you get code 2003(10061) and 1130
    Windows connect to mysql failed: can't get hostname for your address
    Python基础教程总结(二)
    Python基础教程总结(一)
    Begin to study Deep Learning
    再坚持一点点
    技术到管理的必经之路(2)
    技术到管理的必经之路(1)
    c#进阶(7)—— 异步编程基础(async 和 await 关键字)
    c#进阶(6)—— 网络通信基础知识
  • 原文地址:https://www.cnblogs.com/HHR-SUN/p/7039297.html
Copyright © 2011-2022 走看看