- 一、工廠模式在開發中的運用
面試題:寫一個簡單的計算器。
- 代碼實現:抽象一個運算類:[java]package com.qianyan.calcuator;public abstract class Operation {//數字一private double num1;//數字二private double num2;public double getNum1() {return num1;}public void setNum1(double num1) {this.num1 = num1;}public double getNum2() {return num2;}public void setNum2(double num2) {this.num2 = num2;}public abstract double getResult();}創建工廠類:[java]package com.qianyan.factory;import com.qianyan.calcuator.AddOperation;import com.qianyan.calcuator.Operation;import com.qianyan.calcuator.SubtractOperation;public class OperationFactory {public static Operation getOperation(String oper){if("+".equals(oper))return new AddOperation();else if("-".equals(oper))return new SubtractOperation();elsereturn null;}}抽象運算的實現類:[java]package com.qianyan.calcuator;public class AddOperation extends Operation{@Overridepublic double getResult() {return this.getNum1() + this.getNum2();}}[java]package com.qianyan.calcuator;public class SubtractOperation extends Operation{@Overridepublic double getResult() {return this.getNum1() - this.getNum2();}}用戶類:[java]package com.qianyan.user;import java.util.Scanner;import com.qianyan.calcuator.Operation;import com.qianyan.factory.OperationFactory;public class User {public static void main(String[] args) {System.out.println("----小C計算器程序----");Scanner input = new Scanner(System.in);System.out.println("請輸入第一個運算數字:");String str1 = input.nextLine();System.out.println("請輸入運算符:");String oper = input.nextLine();System.out.println("請輸入第二個運算數字:");String str2 = input.nextLine();double num1 = Double.parseDouble(str1);double num2 = Double.parseDouble(str2);Operation opertion = OperationFactory.getOperation(oper);opertion.setNum1(num1);opertion.setNum2(num2);double result = opertion.getResult();System.out.println(str1 + oper + str2 + "=" + result);}}測試結果:[java]----小C計算器程序----請輸入第一個運算數字:5請輸入運算符:-請輸入第二個運算數字:35-3=2.0