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