1. // 简单工厂
    2. public class Operation {
    3. private Double number1;
    4. private Double number2;
    5. public Double getNumber1() {
    6. return number1;
    7. }
    8. public void setNumber1(Double number1) {
    9. this.number1 = number1;
    10. }
    11. public Double getNumber2() {
    12. return number2;
    13. }
    14. public void setNumber2(Double number2) {
    15. this.number2 = number2;
    16. }
    17. public Double getResult() {
    18. double result=0;
    19. return result;
    20. }
    21. }
    22. // 加法工厂
    23. public class OperationAdd extends Operation {
    24. @Override
    25. public Double getResult() {
    26. Double result=0d;
    27. result=getNumber1()+getNumber2();
    28. return result;
    29. }
    30. }
    31. // 除法工厂
    32. public class OperationDiv extends Operation {
    33. @Override
    34. public Double getResult() {
    35. Double result=0d;
    36. result=getNumber1()/getNumber2();
    37. return result;
    38. }
    39. }
    40. // 乘法工厂
    41. public class OperationMul extends Operation {
    42. @Override
    43. public Double getResult() {
    44. Double result=0d;
    45. result=getNumber1()*getNumber2();
    46. return result;
    47. }
    48. }
    49. // 减法工厂
    50. public class OperationSub extends Operation {
    51. @Override
    52. public Double getResult() {
    53. Double result=0d;
    54. result=getNumber1()-getNumber2();
    55. return result;
    56. }
    57. }
    58. // 测试
    59. public class Test {
    60. public static void main(String[] args) {
    61. System.out.println("加法工厂测试");
    62. OperationAdd operationAdd=new OperationAdd();
    63. operationAdd.setNumber1(Double.valueOf(1));
    64. operationAdd.setNumber2(Double.valueOf(1));
    65. Double addResult = operationAdd.getResult();
    66. System.out.println(addResult);
    67. System.out.println("减法工厂测试");
    68. OperationSub operationSub=new OperationSub();
    69. operationSub.setNumber1(Double.valueOf(2));
    70. operationSub.setNumber2(Double.valueOf(1));
    71. Double subResult = operationSub.getResult();
    72. System.out.println(subResult);
    73. System.out.println("乘法工厂测试");
    74. OperationMul operationMul=new OperationMul();
    75. operationMul.setNumber1(Double.valueOf(2));
    76. operationMul.setNumber2(Double.valueOf(1));
    77. Double mulResult = operationMul.getResult();
    78. System.out.println(mulResult);
    79. System.out.println("减法工厂测试");
    80. OperationDiv operationDiv=new OperationDiv();
    81. operationDiv.setNumber1(Double.valueOf(2));
    82. operationDiv.setNumber2(Double.valueOf(1));
    83. Double divResult = operationMul.getResult();
    84. System.out.println(divResult);
    85. }
    86. }