ホームページ  >  記事  >  ウェブフロントエンド  >  js デザイン パターン: 戦略パターンとは何ですか? JS戦略パターンの紹介

js デザイン パターン: 戦略パターンとは何ですか? JS戦略パターンの紹介

不言
不言オリジナル
2018-08-17 16:05:061746ブラウズ

この記事では、JS デザイン パターンに関するコンテンツをお届けします: 戦略パターンとは何ですか? js の戦略モードの紹介は一定の参考値がありますので、困っている方は参考にしていただければ幸いです。

ストラテジーモードとは何ですか?

定義: 異なるパラメータに応じて異なる戦略をヒットさせることができます

主な解決策: 類似したアルゴリズムが複数ある場合、if...elseを使用することによって引き起こされるメンテナンスの複雑さと困難。

いつ戦略パターンを使用するか: 多くの状況があり、それらを区別するのは単にその直接的な行動です。

解決方法: ハッシュ オブジェクトを通じてさまざまな戦略をマッピングします。

js戦略モードの利点: 1.アルゴリズムを自由に切り替えることができます。 2. 複数の条件判断を使用しないでください。 3. 優れた拡張性と再利用性。

js戦略モードの欠点: 1.戦略カテゴリが増加します。 2. すべての戦略クラスを外部世界に公開する必要があります。

戦略モードの使用シナリオ: 1. 動作に基づいて実行方法を動的に変更する必要があります。 2. コードを削減し、コードを読みやすくするため。 3. ポリシーの一元管理が必要。

JS の戦略パターン

年末ボーナスを取得する次のデモをご覧ください。これは、JS の戦略パターンの最も古典的なアプリケーションの 1 つです。 。

 const strategy = {
  'S': function(salary) {
    return salary * 4
  },
  'A': function(salary) {
    return salary * 3
  },
  'B': function(salary) {
    return salary * 2
  }
}

const calculateBonus = function(level, salary) {
  return strategy[level](salary)
}

calculateBonus('A', 10000) // 30000

関数が第一級の要素である JS では、js 戦略パターンの使用が高階関数に隠されていることがよくあります。上記のデモを次の形式に少し変更すると、すでに使用されていることがわかります。 、デザインパターンをまたマスターしました。

const S = function(salary) {
  return salary * 4
}

const A = function(salary) {
  return salary * 3
}

const B = function(salary) {
  return salary * 2
}

const calculateBonus = function(func, salary) {
  return func(salary)
}

calculateBonus(A, 10000) // 30000

関連する推奨事項:

JSデザインパターンのプロキシモードの詳細な説明

PHPデザインパターンのシングルトンモードコード、PHPデザインパターン

以上がjs デザイン パターン: 戦略パターンとは何ですか? JS戦略パターンの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。