您的位置:首页 > 编程语言 > Java开发

java设计模式之策略模式

2016-11-23 14:42 483 查看
策略设计模式设计思路:
第一步:定义接口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

获取更多精彩内容请添加微信公众号 java刘振东

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息