入門
本論文では、戦略パターンの内容を説明しています。メインモードは、戦略が何であるかを説明し、どのように対応する利点と欠点を使用します。
- 戦略モードの紹介
- サンプルコード
- 概要
まず、戦略パターンプレゼンテーション
最後に、ここでの戦略パターンは何ですか?私自身の理解によると、短期では、統一されたビジネスロジックのクラスのタスクプロパティがカプセル化されている必要があります、呼び出し側が自らのビジネスシナリオに応じて、必要なことができ、ビジネス戦略を呼び出します。
:図は、以下の3つの側面含まモードモジュールに関連するポリシーによって理解される
;クラスポリシーは、参照が含まれています:1、政策環境を
2、アブストラクト:パブリック抽象動作ポリシー、ポリシーは、すべてのインタフェース方法を含み、
図3に示すように、特定のポリシーを実装:異なる戦略アルゴリズムをカプセル化します。
第二に、サンプルコード
1、政策シーン
public class StrategyContext {
//持有一个具体策略的对象
private Strategy strategy;
/**
* 构造函数,传入一个具体策略对象
* @param strategy 具体策略对象
*/
public StrategyContext(Strategy strategy){
this.strategy = strategy;
}
/**
* 策略方法
*/
public void contextInterface(){
strategy.strategyInterface();
}
}
2、戦略インタフェース
public interface Strategy {
/**
* 策略方法
*/
public void strategyInterface();
}
3、ポリシーの実装
public class StrategyA implements Strategy {
@Override
public void strategyInterface() {
//相关的业务
}
}
public class StrategyB implements Strategy {
@Override
public void strategyInterface() {
//相关的业务
}
}
4、戦略を使用して
public class ContextClient {
public static void main(String[] args) {
Strategy StrategyA = new StrategyA();
StrategyContext contextA = new StrategyContext(StrategyA );
//调用策略A的执行方法
contextA.contextInterface();
}
}
第三に、要約
アルゴリズムのための戦略パターンの使用シナリオは、コールシナリオの独立したパッケージを、抽出します。
戦略パターンの利点:
1は、複数のサービスコード決意ロジックがある場合、ポリシーモードの多数回避するためにif-else
避けて混乱を判定コードロジック、拡張コードの保守;
2、戦略の公開部分は、高度に抽象的であることができます反復符号を避けるために、
戦略パターンの短所:
1は、呼び出し側は、発信者を使用することの難しさを増加、すべての戦略の実装クラスを知っている必要があります。
それは、より論理的と判断された場合は2、そして、より多くの戦略の実装クラスになります。