JSストラテジーパターンの使い方を詳しく解説

php中世界最好的语言
リリース: 2018-03-23 13:55:59
オリジナル
1811 人が閲覧しました

今回は、JS 戦略モードの使用について詳しく説明します。JS 戦略モードを使用する際の 注意事項 は何ですか?実際の事例を見てみましょう。

戦略パターンの概念参照:

ソフトウェア開発では、特定の機能を実装するために複数のアルゴリズムや戦略が存在することがよくあります。この関数は、さまざまな環境や条件に応じて異なるアルゴリズムや戦略を選択できます。 。

検索、並べ替えなど。一般的な方法は、クラス内にハードコーディングすることです。複数の検索アルゴリズムを提供する必要がある場合は、これらのアルゴリズムをクラスに記述し、そのクラス内に複数の検索アルゴリズムをそれぞれ提供します。メソッドは特定の検索アルゴリズムに対応します。もちろん、これらの検索アルゴリズムを統一メソッドにカプセル化し、if...else...or case およびその他の条件

判断ステートメント を通じて選択することもできます。

これら 2 つの実装方法をハードコーディングと呼びます。新しい検索アルゴリズムを追加する必要がある場合は、カプセル化されたアルゴリズム クラスのソース コードを変更する必要があり、検索アルゴリズムを変更する場合は、クライアントの呼び出しも変更する必要があります。コード。

このアルゴリズム クラスには多数の検索アルゴリズムがカプセル化されており、このタイプのコードはより複雑になり、保守が困難になります。クライアントにこれらの戦略を組み込むと、クライアント プログラムが大きくなり、選択できるアルゴリズムが多数ある場合、問題はさらに深刻になります。

例:

1. 旅行: 自転車、車、電車、飛行機など、いくつかの戦略を検討できます。各戦略は同じ結果を達成しますが、使用するリソースは異なります。

各方法のコスト、時間、ツール、利便性に基づいて戦略を選択してください。

2. ショッピングモールでは、メーデーにイベントが開催されたため、購入金額に応じて以下の割引戦略が行われました

1. 購入の場合、199元以上の場合は10%オフになります

2. 399 元以上、20% オフ

3. 599 元以上の購入で 30% オフ

function BookStrategy() {
 this.calcPrice = function( price ) {
 console.log("未打折 = " + price);
 }
}
function BookCalc9Strategy() {
 this.calcPrice = function( price ) {
 console.log("原价是:"+ price +";打9折后:" + (price * 0.9));
 }
}
function BookCalc8Strategy() {
 this.calcPrice = function( price ) {
 console.log("原价是:"+ price +";打8折后:" + (price * 0.8));
 }
}
function BookCalc7Strategy() {
 this.calcPrice = function( price ) {
 console.log("原价是:"+ price +";打7折后:" + (price * 0.7));
 }
}
function PriceCalc( _strategy ) {
 this.strategy = _strategy;
 this.getPrice = function( price ) {
 return this.strategy.calcPrice( price );
 }
}
function Client() {
 var price = 100;
 var priceCalc = null;
 if ( 199 <= price && price < 399 ) {
 priceCalc = new PriceCalc(new BookCalc9Strategy());
 } else if ( 399 <= price && price < 599 ) {
 priceCalc = new PriceCalc(new BookCalc8Strategy());
 } else if ( 599 <= price ) {
 priceCalc = new PriceCalc(new BookCalc7Strategy());
 } else {
 priceCalc = new PriceCalc(new BookStrategy());
 }
 priceCalc.getPrice(price);
}
Client();
ログイン後にコピー

この記事の事例を読んだ後は、方法を習得したと思います。 php 中国語 Web サイトの他の関連記事にも注目してください。
推奨読書:

datepickerの使用方法

mixinの高レベルコンポーネントの使用方法の詳細な説明


Vue.jsでのejsExcelテンプレートの使用

以上がJSストラテジーパターンの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!