Java 工厂模式简单运用

来源:互联网 发布:判断素数的条件c语言 编辑:程序博客网 时间:2024/04/30 02:55
运用工厂模式实现简单计算:
package com.simplecalculation;/*** 抽象的运算类,包括操作数* @author rcy*/public abstract class Operation {     private int num1;         private int num2;         /**     * 运算结果的抽象方法     * @return     */     public abstract int getResult();         public int getNum1() {          return num1;     }     public void setNum1(int num1) {          this.num1 = num1;     }     public int getNum2() {          return num2;     }     public void setNum2(int num2) {          this.num2 = num2;     }}
package com.simplecalculation;/*** 加运算类,实现getResult获取加后的结果* @author Owner**/public class AddOperation extends Operation{     @Override     public int getResult() {                   return this.getNum1() + this.getNum2();     }}
package com.simplecalculation;/*** 减运算类,实现具体的减操作运算* @author rcy*/public class SubtractOperation extends Operation{     @Override     public int getResult() {          return this.getNum1() - this.getNum2();     }}
package com.simplecalculation;/*** 运算的工厂类,主要生成加/减操作对象* @author rcy*/public class OperationFactory {     /**     * 通过操作符号,获取运算对象     * @param oper     * @return     */     public static Operation getOperation(String oper){          if(oper.equals("+")){               return new AddOperation();          }else if(oper.equals("-")){               return new SubtractOperation();          }else{               return null;          }     }}
package com.simplecalculation;import java.util.Scanner;/*** @author rcy*/public class Customer {     public static void main(String[] args) {          Scanner sc = new Scanner(System.in);                   System.out.println("输入第一个数:");          int num1 = sc.nextInt();                   System.out.println("输入运算符:");          String oper = sc.next();                   System.out.println("输入第二个数:");          int num2 = sc.nextInt();                   //获取运算对象          Operation operation = OperationFactory.getOperation(oper);                   operation.setNum1(num1);          operation.setNum2(num2);                   System.out.println("运算结果为:"+operation.getResult());     }}
输出结果为:输入第一个数:3输入运算符:+输入第二个数:2运算结果为:5









0 0