//面向过程的编写
//创建一个包
package com.bjpowernode.test;
;
/**
-
ClassName:Operation
-
Package:com.bjpowernode.test
-
Description:
-
@date:2018/10/24 0024 16:29
-
@author:Robin@bjpowernode.com
*/
第一步: 创建抽象类Operation
public abstract class Operation {
private double n1;
private double n2;public double getN1() {
return n1;
}public void setN1(double n1) {
this.n1 = n1;
}public double getN2() {
return n2;
}public void setN2(double n2) {
this.n2 = n2;
}
//抽象类不一定有抽象方法,但是有抽象方法就必须是抽象类
//抽象方法没有方法体
public abstract double getResult();
}
//第二步:创建实现类
package com.bjpowernode.test;
;
/**
- ClassName:AddOperation
- Package:com.bjpowernode.test
- Description:
- @date:2018/10/24 0024 16:41
- @author:Robin@bjpowernode.com
*/
public class AddOperation extends Operation {
@Override
public double getResult() {
double result= this.getN1()+this.getN2();
return result;
}
}
//第三步:创建一个操作工厂接口
package com.bjpowernode.test;
/**
- ClassName:OperationFactory
- Package:com.bjpowernode.test
- Description:
- @date:2018/10/24 0024 16:35
- @author:Robin@bjpowernode.com
*/
public interface OperationFactory {
public Operation getOperation();
}
//第四步:创建一个接口实现类
package com.bjpowernode.test;
;
/**
- ClassName:AddOperationFactory
- Package:com.bjpowernode.test
- Description:
- @date:2018/10/24 0024 16:38
- @author:Robin@bjpowernode.com
*/
public class AddOperationFactory implements OperationFactory {
@Override
public Operation getOperation() {
return new AddOperation();
}
}
第五部:
//创建一个测试类
package com.bjpowernode;
import com.bjpowernode.test.AddOperation;
import com.bjpowernode.test.Operation;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.servlet.tags.form.InputTag;
import java.util.Scanner;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
// SpringApplication.run(Application.class, args);
//用工厂方法模式实现一个简单的计算
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数:");
String num1 = input.next();
System.out.println("请输入一个运算符:");
String ops = input.next();
System.out.println("请输入另一个数:");
String num2 = input.next();
Double result = 0.0;
double n1 = Double.parseDouble(num1);
double n2 = Double.parseDouble(num2);
//面向过程设计
/* if("+".equals(ops)){
result=n1+n2;
}else if ("-".equals(ops)){
result=n1-n2;
}else if ("*".equals(ops)){
result=n1*n2;
}else if ("/".equals(ops)){
result=n1/n2;
}
System.out.println(result);*/
//下面是面向对象的编程,采用的是工厂方法模式
if ("+".equals(ops)) {
Operation add = new AddOperation();
add.setN1(n1);
add.setN2(n2);
double result1 = add.getResult();
System.out.println(result1);
} else if ("-".equals(ops)) {
result = n1 - n2;
System.out.println(result);
} else if ("*".equals(ops)) {
result = n1 * n2;
System.out.println(result);
} else if ("/".equals(ops)) {
result = n1 / n2;
System.out.println(result);
}
}
}