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));
        }
    }
  • 相关阅读:
    ZOJ 1002 Fire Net (火力网)
    UVa OJ 117 The Postal Worker Rings Once (让邮差只走一圈)
    UVa OJ 118 Mutant Flatworld Explorers (变体扁平世界探索器)
    UVa OJ 103 Stacking Boxes (嵌套盒子)
    UVa OJ 110 MetaLoopless Sorts (无循环元排序)
    第一次遇到使用NSNull的场景
    NSURL使用浅析
    从CNTV下载《小小智慧树》
    NSDictionary and NSMutableDictionary
    Category in static library
  • 原文地址:https://www.cnblogs.com/HHR-SUN/p/7039297.html
Copyright © 2011-2022 走看看