최고의 전략 모드 튜토리얼 2024년, 이 튜토리얼에서는 소개,실현,를 배울 수 있습니다.
전략 모드 (전략 패턴), 클래스 행위, 또는 알고리즘 런타임에 변경 될 수 있습니다. 디자인 패턴이 유형의 행동 패턴에 속한다.
전략 모드에서는 오브젝트와 텍스트 오브젝트의 표현을 변경하는 정책 객체로서 행동 변화의 다양한 전략을 생성한다. 정책 개체 알고리즘의 실행 컨텍스트 객체를 변경합니다.
의도 : 알고리즘 가족의정의는, 그것들을 하나 하나 캡슐화하고 교체합니다.
주로 해결하기 위해 : 여러 유사한 알고리즘의 경우 다른 복잡하고 유지하기가 어렵 가져 ko. 경우에 사용.
시스템이 많은 여러 카테고리를 가지고, 오직 즉각적인 행동을 구별하기 위하여다음의 경우 사용한다.
어떻게 해결하는 방법은 : 패키지 클래스에이 알고리즘은 임의적으로 대체됩니다.
키 코드는 : 동일한 인터페이스를 구현합니다.
적용 예 : 1, 좋은 아이디어 제갈량은 각 키트는 전략이다.2 차로, 자전거를 타고 선택, 여행 여행 방법은 여행하는 각각의 방법은 전략이다. 3, JAVA는 LayoutManager에를 AWT.
장점 : 1 알고리즘을 자유롭게 전환 할 수있다.2 다중 조건의 사용을 피해야한다. 3, 좋은 확장 성을 제공합니다.
단점 : 1 전략은 증가 할 것이다.2, 모든 클래스는 외교 정책 노출의 필요합니다.
사용 시나리오 : 1, 많은 종류가 동작 만 그들 사이의 차이를, 동적으로 객체의 많은 동작의 행동을 허용하도록 선택할 수 전략 패턴을 사용하는 시스템은 존재하는 경우.도 2를 참조하면, 시스템은 동적으로 여러 알고리즘 중 하나를 선택해야한다. 즉 적절한 모드가 아닌 경우 객체가 행동을 많이 가지고 3. 경우, 이러한 행위는 여러 조건을 달성하기 위해 문을 선택 사용했다.
주 : 개 이상의 시스템의 정책, 사용자가 확장 정책 클래스의 문제를 해결하기 위해, 혼합 모드의 사용을 고려할 필요가있는 경우.
우리는 기업전략전략전략 인터페이스에잘 정의 된 인터페이스 및 구현 활동을 만듭니다.콘텍스트는특정 수준의 정책을 사용한다.
이 구성 또는 정책 변경을 변경하는 데 사용되는 경우StrategyPatternDemo는컨텍스트 컨텍스트 및 정책 개체를 사용하여 우리의 데모 클래스는 동작을 보여합니다.
인터페이스를 만듭니다.
Strategy.java
공용 인터페이스 전략 { 공공 INT doOperation (INT NUM1, INT NUM2); }
인터페이스를 구현 엔티티 클래스를 만듭니다.
OperationAdd.java
공용 클래스 OperationAdd는 전략을 {구현 @Override 공공 INT의 doOperation (INT NUM1, INT NUM2) { NUM1 + NUM2를 반환; } }
OperationSubstract.java
공용 클래스 OperationSubstract는 전략을 {구현 @Override 공공 INT의 doOperation (INT NUM1, INT NUM2) { NUM1을 반환 - NUM2을; } }
OperationMultiply.java
공용 클래스 OperationMultiply는 전략을 {구현 @Override 공공 INT의 doOperation (INT NUM1, INT NUM2) { NUM1의 *의 NUM2를 반환; } }
상황에 맞는클래스를 만듭니다.
Context.java
공용 클래스 컨텍스트 { 개인 전략 전략; 공공 컨텍스트 (전략 전략) { this.strategy = 전략; } 공공 INT executeStrategy (INT NUM1, INT NUM2) { strategy.doOperation (NUM1, NUM2)을 반환; } }
그것은 행동 변화 전략전략을변경할 때 볼컨텍스트를 사용합니다.
StrategyPatternDemo.java
공용 클래스 StrategyPatternDemo { 공공 정적 무효 메인 (문자열 []에 args) { 컨텍스트 컨텍스트 = 새로운 컨텍스트 (새 OperationAdd ()); System.out.println에 ( "10 + 5 ="+ context.executeStrategy (10, 5)); 컨텍스트 = 새로운 컨텍스트 (새 OperationSubstract ()); 에서 System.out.println ( "10-5 ="+ context.executeStrategy (10, 5)); 컨텍스트 = 새로운 컨텍스트 (새 OperationMultiply ()); System.out.println에 ( "10 * 5 ="+ context.executeStrategy (10, 5)); } }
출력을 확인합니다.
10 + 5 = 15 10--5 = 5 10 * 5 = 50