1. public class Operation 
  2.     private double _numberA = 0
  3.     private double _numberB = 0
  4.     public double getnumberA() 
  5.     { 
  6.         return _numberA; 
  7.     } 
  8.     public double getnumberB() 
  9.     { 
  10.         return _numberB; 
  11.     } 
  12.     public void setnumberA(double numberA) 
  13.     { 
  14.         this._numberA = numberA; 
  15.     } 
  16.     public void setnumberB(double numberB) 
  17.     { 
  18.         this._numberB = numberB; 
  19.     } 
  20.     public double GetResult() 
  21.     { 
  22.         double result = 0
  23.         return result; 
  24.     } 
  25. class OperationAdd extends Operation 
  26.     public double GetResult() 
  27.     { 
  28.         double result = 0
  29.         result = getnumberA() + getnumberB(); 
  30.         return result; 
  31.     } 
  32. class OperationSub extends Operation 
  33.     public double GetResult() 
  34.     { 
  35.         double result = 0
  36.         result = getnumberA() - getnumberB(); 
  37.         return result; 
  38.     } 
  39. class OperationMul extends Operation 
  40.     public double GetResult() 
  41.     { 
  42.         double result = 0
  43.         result = getnumberA() * getnumberB(); 
  44.         return result; 
  45.     } 
  46. class OperationDiv extends Operation 
  47.     public double GetResult() 
  48.     { 
  49.         double result = 0
  50.         if(getnumberB()==0
  51.             System.out.println("除数不能为0"); 
  52.         else 
  53.             result = getnumberA() / getnumberB(); 
  54.         return result; 
  55.     } 

 

 

 

  1. class OperationFactory 
  2.     public static Operation createOperate(String operate) 
  3.     { 
  4.         Operation oper = null
  5.         if(operate == "+"
  6.         { 
  7.             oper = new OperationAdd(); 
  8.         }else if(operate == "-"
  9.         { 
  10.             oper = new OperationSub(); 
  11.         }else if(operate == "*"
  12.         { 
  13.             oper = new OperationMul(); 
  14.         }else if(operate == "/"
  15.         { 
  16.             oper = new OperationDiv(); 
  17.         } 
  18.         return oper; 
  19.     } 
  20. public class OperationFactoryTest1 
  21.     public static void main(String[] args) 
  22.     { 
  23.         Operation oper; 
  24.         oper = OperationFactory.createOperate("+"); 
  25.         oper.setnumberA(2.3); 
  26.         oper.setnumberB(2.4); 
  27.         double result = oper.GetResult(); 
  28.         System.out.println(result); 
  29.     }