public static void main(String[] args) {
    IFactory factory = new MutiFactory();
    Operation operation = factory.createOperation();

    operation.setNum1(19);
    operation.setNum2(8);

    System.out.println(operation.getResult());
  }
Esempio n. 2
0
  public static void main(String[] args) {
    /*
     * 普通面向对象的实现方式:
     * 1、需要明确指定需要实例化类
     * 2、不利于扩展
     *
     * 下面是使用简单工厂模式实现方式
     * 这样添加其他操作,只需要增加相应的实现类并修改工厂类,符合开放-封闭原则中的开放原则,
     * 但是,扩展时仍需要修改工厂类,所以不符合封闭原则
     */

    System.out.println("---计算器程序---");
    System.out.println("---输入第一个操作数---");
    Scanner scanner = new Scanner(System.in);
    String strNum1 = scanner.nextLine();

    System.out.println("---输入运算符---");
    String oper = scanner.nextLine();

    System.out.println("---输入第二个操作数---");
    String strNum2 = scanner.nextLine();

    double num1 = Double.parseDouble(strNum1);
    double num2 = Double.parseDouble(strNum2);

    scanner.close();

    // 2、进行计算
    double result = 0;
    Operation operation = null;

    if ("+".equals(oper)) {
      OperationFactory addOpFactory = new AddOperationFactory();
      operation = addOpFactory.getOperatin();
    } else if ("-".equals(oper)) {
      OperationFactory subtractOpFactory = new SubtractOperationFactory();
      operation = subtractOpFactory.getOperatin();
    } else if ("*".equals(oper)) {
      OperationFactory multiplyOpFactory = new MultiplyOperationFacoty();
      operation = multiplyOpFactory.getOperatin();
    } else if ("/".equals(oper)) {
      OperationFactory dividOpFactory = new DividOperationFactory();
      operation = dividOpFactory.getOperatin();
    } else {
      System.out.println("非法操作符");
    }
    operation.setNum1(num1);
    operation.setNum2(num2);
    result = operation.getResult();

    // 3、返回结果
    System.out.println("---计算结果---");
    System.out.println(strNum1 + oper + strNum2 + "=" + result);
  }
Esempio n. 3
0
 public static void main(String[] args) {
   // 1.接受控制台输入
   System.out.println("---计算器程序---");
   System.out.println("输入第一个操作数");
   Scanner scanner = new Scanner(System.in);
   String strNum1 = scanner.nextLine();
   System.out.println("输入运算符");
   String oper = scanner.nextLine();
   System.out.println("输入第二个操作数");
   String strNum2 = scanner.nextLine();
   double result = 0;
   double num1 = Double.parseDouble(strNum1);
   double num2 = Double.parseDouble(strNum2);
   // 2.进行运算
   if ("+".equals(oper)) {
     OperationFactory factory = new AddOperationFactory();
     Operation operation = factory.getOperation();
     operation.setNum1(num1);
     operation.setNum2(num2);
     result = operation.getResult();
   }
   // 3.返回结果
   System.out.println(strNum1 + oper + strNum2 + "=" + result);
 }