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

来源:互联网 发布:淘宝国际版网址 编辑:程序博客网 时间:2024/06/05 18:40

用最常用的例子,最容易懂得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{@Overridepublic 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{@Overridepublic int execute(int number1, int number2) {return number1+number2;}}