정의 : 클래스 또는 알고리즘의 동작은 런타임에 변경 될 수 있습니다. 정책 모드에서는 다양한 정책을 나타내는 객체와 정책 개체가 변경 될 때 동작이 변경되는 컨텍스트 객체를 만듭니다. 정책 개체는 컨텍스트 객체의 실행 알고리즘을 변경합니다.
특징:
1. 알고리즘을 자유롭게 전환 할 수 있습니다.
2. 여러 조건을 사용하여 판단하지 마십시오.
3. 좋은 확장 성.
엔터프라이즈 레벨 개발 및 공통 프레임 워크의 응용 프로그램 : java.servlet.http.httpservlet 서비스 방법
예 : 두 숫자의 작동 동작.
공개 클래스 데모 {public static void main (String [] args) {전략 전략 1 = new StrategyAdd (); 전략 전략 2 = New StrategyDiv (); 문맥 context1 = 새로운 맥락 (전략 1); 컨텍스트 1.Execute (10, 5); 컨텍스트 1 = 새로운 맥락 (전략 2); 컨텍스트 1.Execute (10, 5); }} 인터페이스 전략 {public void dooperation (int num1, int num2);} 클래스 전략적 전략 {public void dooperation (int num1, int num2) {system.out.println ( "Execute Addition"); System.out.println (num1+"+"+num2+"="+(num1+num2)); }} Class StrategySub 전략을 구현 {public void dooperation (int num1, int num2) {System.out.println ( "execute subtraction"); System.out.println (num1+"-"+num2+"="+(num1-num2)); }} Class StrategyMul은 전략 {public void dooperation (int num1, int num2) {System.out.println ( "곱셈"); System.out.println (num1+"*"+num2+"="+(num1*num2)); }} Class StrategyDiv 전략 {public void dooperation (int num1, int num2) {System.out.println ( "Execute Division"); System.out.println (num1+"/"+num2+"="+(num1/num2)); }} 클래스 컨텍스트 {개인 전략 전략; 공개 맥락 (전략 전략) {this.strategy = 전략; } public void execute (int num1, int num2) {전략. }}정책 모델은 런타임 변경을 강조합니다. 위의 코드 에서이 런타임 변경은 잘 반영되지 않습니다. 실용적인 시나리오, 즉 객체 매개 변수가 메소드로 전달 될 때 다른 매개 변수에 따라 다른 방법을 선택해야한다고 가정 할 수 있습니다. 판단 할 IF-ELSE를 고려하고 정책 모델은 이러한 IF-ELSE를 분류하고 각 판사 A 클래스를 분류하고 직접 정책 인터페이스 방법을 호출합니다. 객체 매개 변수의 특정 클래스는 JVM에 의해 판단됩니다. 객체 매개 변수 속성 유형 등을 이해할 필요는 없습니다. 이것은 개발 작업을 단순화 할뿐만 아니라 IF-ELSE에 비해 확장 성이 우수합니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.