1.戦略モード:一連のアルゴリズムを定義し、それらを1つずつカプセル化し、互換性を持たせます。
2.例:
var S = function( salary ){
return salary * 4;
};
var A = function( salary ){
return salary * 3;
};
var B = function( salary ){
return salary * 2;
};
var calculateBonus = function( func, salary ){
return func( salary );
};
calculateBonus( S, 10000); //输出:40000
3.アプリケーションシナリオを上記のコードに割り当てます。
会社が年末のボーナスを発行したいが、ボーナスのシェアはポジションごとに区別する必要があるとします。たとえば、取締役レベル、チームリーダーレベル、一般従業員レベルに分けられます。Sは取締役レベルのボーナス機能です。これは給与の4倍です。計算するときは、Sオブジェクトと給与を入力するだけで、年末のボーナスを計算できます。他は同じです。
第四に、戦略モデルの長所と短所
利点:
1.組み合わせ、委任、ポリモーフィズムなどの手法やアイデアを使用すると、複数の条件付き選択ステートメントを効果的に回避できます。
2.ストラテジーモードは、オープンクローズの原則を完全にサポートし、アルゴリズムを独立したストラテジーにカプセル化して、切り替え、理解、拡張を容易にします。
3.ストラテジーモードのアルゴリズムは、システムの他の部分でも再利用できるため、コピーと貼り付けの繰り返し作業を何度も回避できます。
4.戦略モードでは、組み合わせと委任を使用して、コンテキストがアルゴリズムを実行できるようにします。これは、継承のより軽い代替手段でもあります。
短所:
1.ストラテジーモードは、多くのストラテジークラスまたはストラテジーオブジェクトをプログラムに追加します。
2.戦略モデルを使用するには、すべての戦略と各戦略の違いを理解して、適切な戦略を選択できるようにする必要があります。
5.ステートメント:上記のコンテンツは、「JavaScriptデザインパターンと開発プラクティス」から採用されています。