- 一、工厂模式在开发中的运用
面试题:写一个简单的计算器。
- 代码实现:抽象一个运算类:[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