您的位置:首页 > 其它

常见设计模式之【策略模式】

2012-08-28 14:11 465 查看
用最常用的例子,最容易懂得demo讲述策略模式:

策略:只要能完成目的,啥方法都ok;

package Strategy;
/**
 *@Description: 策略模式
 *@author Potter   
 *@date 2012-8-28 下午01:46:57
 *@version V1.0   
 */
public class App {

	public static void main(String[] args) {
		Calculator calculator=new Calculator();
		calculator.setNumber1(20);
		calculator.setNumber2(30);
		calculator.setOperator(new Minus());
		System.out.println("result="+calculator.getResult());
	}
	
}

计算器类:

package Strategy;
/**
 *@Description:计算器 
 *@author Potter   
 *@date 2012-8-28 下午01:49:59
 *@version V1.0   
 */
public class Calculator {
	private int number1;
	private int number2;
	private Operator operator;
	
	public void setNumber1(int number1) {
		this.number1 = number1;
	}
	public void setNumber2(int number2) {
		this.number2 = number2;
	}
	public void setOperator(Operator operator) {
		this.operator = operator;
	}
	
	public int getResult(){
		return operator.execute(number1, number2);
	}
}


运算接口(策略接口):

package Strategy;
/**
 *@Description: 运算接口
 *@author Potter   
 *@date 2012-8-28 下午01:51:41
 *@version V1.0   
 */
public interface Operator {
	public int execute(int number1,int number2);
}

加法类:

package Strategy;
/**
 *@Description: 加法类
 *@author Potter   
 *@date 2012-8-28 下午01:55:16
 *@version V1.0   
 */
public class Plus implements Operator{

	@Override
	public int execute(int number1, int number2) {
		return number1-number2;
	}
	
}


减法类:

package Strategy;
/**
 *@Description: 减法类
 *@author Potter   
 *@date 2012-8-28 下午01:57:05
 *@version V1.0   
 */
public class Minus implements Operator{

	@Override
	public int execute(int number1, int number2) {
		return number1+number2;
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: