简单工厂模式 实现加减乘除详解编程语言

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)); 
    } 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/12186.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论