デザインパターンの戦略パターン

Strategyパターンの
  オブジェクトが持っている特定の動作を、しかしに異なるシナリオ、動作が持っている別のアルゴリズムを例えば、人
  これは、アルゴリズムのセット、およびそのポリシークラス抽象クラスポリシーのサブクラスとして、一連のアルゴリズムへのパッケージのセットを用意することです。

主なソリューション
アルゴリズム似たような状況の様々な、複雑で面倒な性質を利用の場合... ELSEまたはスイッチ...ケースをもたらします。

アブストラクト(戦略)カテゴリ:
このインタフェース、さまざまな方法で種々の異なるアルゴリズムに共通のインタフェースを定義する
    インタフェースまたは抽象クラスの実装を使用し、一般的に、環境、異なるアルゴリズムを使用して、このインターフェース呼び出しの役割。

具体的な戦略(コンクリート戦略)カテゴリ:
特定のアルゴリズムを提供し、抽象インタフェースのポリシー定義を実装します。
:環境(コンテキスト)クラスの
参照は、ポリシークラスを保持し、最終的にクライアントの呼び出しに。
1つの パブリック クラス戦略{
 2      公共 静的 ボイドメイン(文字列[]引数){
 3          コンテキストコンテキスト= 新しいコンテキスト(新規追加())。
4          INT I = context.toCalculate(1、2 )。
5          のSystem.out.println(I)。
6      }
 7  }
 8  
9  // 抽象策略
10  抽象 クラス計算{
 11      パブリック 抽象 INT toCalculate(INT A、INT B)。
12 }
 13  
14  // 具体策略
15  クラス addは延び計算{
 16      @Override
 17      公衆 INT toCalculate(INT A、INT B){
 18          リターン A + 、Bを
19      }
 20  }
 21  
22  クラスのサブ延び{計算
 23      @Override
 24      公衆 INT toCalculate(INT A、INT B){
 25          リターン - A 、Bを
26      }
 27  }
 28  
29  // 環境
30  クラスコンテキスト{
 31は、     // パッケージ戦略
32      専用計算CAL;
 33である 
34れる     公共コンテキスト(計算CAL){
 35          この .CAL = CAL;
 36      }
 37  
38である     公共 INT toCalculate(INT A 、int型B){
 39          リターンcal.toCalculate(A、B);
 40      }
 41れます }

おすすめ

転載: www.cnblogs.com/loveer/p/11286075.html