定義:クラスまたはそのアルゴリズムの動作は、実行時に変更できます。ポリシーモードでは、さまざまなポリシーを表すオブジェクトと、ポリシーオブジェクトが変更されると動作が変化するコンテキストオブジェクトを作成します。ポリシーオブジェクトは、コンテキストオブジェクトの実行アルゴリズムを変更します。
特徴:
1.アルゴリズムは自由に切り替えることができます。
2。複数の条件を使用して判断しないでください。
3。良好なスケーラビリティ。
エンタープライズレベルの開発と共通フレームワークのアプリケーション:java.servlet.http.httpservletサービスメソッド
例: 2つの数字の操作動作。
public class demo {public static void main(string [] args){Strategy Strategy1 = new StrategyAdd();戦略戦略2 = new StrategyDiv();コンテキストコンテキスト1 =新しいコンテキスト(Strategy1); Context1.Execute(10、5); Context1 = new Context(Strategy2); Context1.Execute(10、5); }} interface Strategy {public void Dooperation(int num1、int num2);} class StrategyAddは戦略を実装します{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 suptraction"); 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)); }} class Context {プライベート戦略戦略;パブリックコンテキスト(戦略戦略){this.strategy = Strategy; } public void execute(int num1、int num2){strategy.doperation(num1、num2); }}ポリシーモデルは、ランタイムの変更を強調しています。おそらく上記のコードでは、このランタイムの変更は十分に反映されていません。実用的なシナリオ、つまりオブジェクトパラメーターがメソッドに渡されると、異なるパラメーターに従って異なるメソッドを選択する必要があると仮定することができます。属するオブジェクトパラメーターの特定のクラスは、JVMによって判断されます。オブジェクトパラメーター属性タイプなどを理解する必要はありません。これにより、開発作業が簡素化されるだけでなく、IF-ELSEと比較してスケーラビリティが向上します。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。