策略设计模式设计思路:
第一步:定义接口Calculator,提供方法calculate,返回值类型为long
第二步:定义类Plus,实现Calculator接口
第三步:定义类Minus,实现Calculator接口
第四步:定义类Multiply,实现Calculator接口
第五步:定义类Division,实现Calculator接口
具体编码实现:
第一步:定义接口Calculator,提供方法calculate,返回值类型为long
/**
* 定义运算接口Calculator,提供计算方法calculate,返回值类型为long
*
* @author zdliu
*
*/
public interface Calculator {
public long calculate();
}
第二步:定义类Plus,实现Calculator接口
/**
* 定义类Plus,实现Calculator接口
*
* @author zdliu
*
*/
public class Plus implements Calculator {
/**
* 加法的第一个参数
*/
private long number1;
/**
* 加法的第二个参数
*/
private long number2;
public Plus(long number1, long number2) {
this.number1 = number1;
this.number2 = number2;
}
@Override
public long calculate() {
return number1 + number2;
}
}
第三步:定义类Minus,实现Calculator接口
/**
* 定义类Minus,实现Calculator接口
*
* @author zdliu
*
*/
public class Minus implements Calculator {
/**
* 减法的第一个参数
*/
private long number1;
/**
* 减法的第二个参数
*/
private long number2;
public Minus(long number1, long number2) {
this.number1 = number1;
this.number2 = number2;
}
@Override
public long calculate() {
return number1 - number2;
}
}
第四步:定义类Multiply,实现Calculator接口
/**
* 定义类Multiply,实现Calculator接口
*
* @author zdliu
*
*/
public class Multiply implements Calculator {
/**
* 乘法的第一个参数
*/
private long number1;
/**
* 乘法的第二个参数
*/
private long number2;
public Multiply(long number1, long number2) {
this.number1 = number1;
this.number2 = number2;
}
@Override
public long calculate() {
return number1 * number2;
}
}
第五步:定义类Division,实现Calculator接口
/**
* 第五步:定义类Division,实现Calculator接口
*
* @author zdliu
*
*/
public class Division implements Calculator {
/**
* 除法的第一个参数
*/
private long number1;
/**
* 除法的第二个参数
*/
private long number2;
/**
* 计算结果
*/
private long result = 0;
public Division(long number1, long number2) {
this.number1 = number1;
this.number2 = number2;
}
@Override
public long calculate() {
try {
if (number2 == 0) {
result = -1;
}
result = number1 / number2;
} catch (Exception e) {
}
return result;
}
}
测试类:
public class Test {
public static void main(String[] args) {
System.out.println(new Plus(12, 15).calculate());
System.out.println(new Minus(12, 15).calculate());
System.out.println(new Multiply(12, 15).calculate());
System.out.println(new Division(12, 3).calculate());
}
}
控制台输出信息:
27
-3
180
4