흔히 볼 수 있 는 디자인 모델 의 [전략 모델]

2323 단어
가장 자주 사용 하 는 예 로 데모 설명 전략 모드 를 가장 쉽게 알 수 있 습 니 다.
전략: 목적 을 달성 할 수만 있다 면 모든 방법 이 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;
	}
}

좋은 웹페이지 즐겨찾기