Java 정책 모드 쉽게 파악

정의: 하나의 종류의 행위나 알고리즘은 실행할 때 변경할 수 있습니다.정책 모드에서, 우리는 각종 정책을 나타내는 대상과 행위가 정책 대상이 바뀌면서 바뀌는context 대상을 만듭니다.정책 대상이 context 대상의 실행 알고리즘을 변경합니다.
특징:
1. 알고리즘은 자유롭게 전환할 수 있다.
2. 다중 조건 판단을 피한다.
3. 확장성이 좋다.
기업급 개발 및 상용 프레임워크에서의 응용:java.servlet.http.HttpServlet 서비스 방법
예: 두 개의 수에 대한 조작 행위.

public class Demo {

 public static void main(String[] args) {
 Strategy strategy1 = new StrategyAdd();
 Strategy strategy2 = new StrategyDiv();
 Context context1 = new Context(strategy1);
 context1.execute(10, 5);
 context1 = new Context(strategy2);
 context1.execute(10, 5);
 }
}

interface Strategy{
 public void doOperation(int num1,int num2);
}

class StrategyAdd implements Strategy{

 public void doOperation(int num1, int num2) {
 System.out.println(" ");
 System.out.println(num1+"+"+num2+"="+(num1+num2));
 }
 
}

class StrategySub implements Strategy{

 public void doOperation(int num1, int num2) {
 System.out.println(" ");
 System.out.println(num1+"-"+num2+"="+(num1-num2));
 }
 
}

class StrategyMul implements Strategy{

 public void doOperation(int num1, int num2) {
 System.out.println(" ");
 System.out.println(num1+"*"+num2+"="+(num1*num2));
 }
 
}

class StrategyDiv implements Strategy{

 public void doOperation(int num1, int num2) {
 System.out.println(" ");
 System.out.println(num1+"/"+num2+"="+(num1/num2));
 }
 
}

class Context{
 private Strategy strategy;
 
 public Context(Strategy strategy) {
 this.strategy = strategy;
 }
 
 public void execute(int num1,int num2){
 strategy.doOperation(num1, num2);
 }
}

정책 모델이 강조하는 것은 실행할 때 변경하는 것이다. 위의 코드에서 이런 실행할 때 변경이 잘 나타나지 않았다. 우리는 실제 장면을 가정할 수 있다. 즉, 하나의 대상 파라미터가 하나의 방법에 전달될 때 우리는 파라미터에 따라 다른 방법을 선택해야 한다고 가정한다. 이것은 if-else를 고려하여 판단하는 것이고 정책 모델은 이런 if-else를 분류하는 것이다.하나하나가 하나의 클래스를 판단하고 대상이 왔다. 전략 인터페이스 방법을 직접 호출했다. 대상 파라미터가 어떤 구체적인 클래스에 속하는지는 jvm가 판단한다. 우리는 대상 파라미터의 속성 유형을 이해할 필요가 없다. 이렇게 하면 우리의 개발 작업을 간소화할 뿐만 아니라if-else보다 더욱 좋은 확장성을 가진다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기