問題タブ [strategy-pattern]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
10 に答える
7201 参照

javascript - JavaScript を使用したデザイン パターンの実装例をいくつか教えてください。

私は JavaScript を使用するある程度熟練したプログラマーですが、達人ではありません。これを使って非常に強力なことができることは知っていますが、かなり基本的な DOM 操作以外はあまり見たことがありません。Factory Method、Singleton など、JavaScript を使用した従来の設計パターンの概念の例をいくつか提供していただけないでしょうか。これらのパターンは、Web でどのような場合に使用されますか?

0 投票する
2 に答える
1112 参照

perl - Perl での戦略パターンのクリーンな実装

Perl で戦略パターンのクリーンな実装を作成するにはどうすればよいですか? Perl の機能を活用した方法で行いたいと考えています。

0 投票する
6 に答える
34230 参照

design-patterns - 戦略パターンはどのように機能しますか?

それはどのように機能し、何のために使用され、いつ使用すべきですか?

0 投票する
4 に答える
3472 参照

c++ - C ++戦略デザインパターン、インターフェイス配列の作成

ストラテジーパターンを実装した後、インターフェイスタイプの配列を作成し、それに任意の具象タイプを追加できるようにしたいと思いました。

戦略パターンがわからない場合:http: //en.wikipedia.org/wiki/Strategy_pattern この特定の例では、StrategyInterface配列を作成し、具体的なタイプのA、B、およびCで埋めることができます。 。しかし、これは抽象クラスなので、私はそれを成し遂げることができません。これを行う方法はありますか、それとも抽象メソッドを削除せずに完全に不可能ですか?

0 投票する
8 に答える
10547 参照

design-patterns - 戦略パターンを使用する利点はどこにありますか?

私はウィキペディア、特にC ++サンプルでこの説明を見てきましたが、3つのクラスを定義し、インスタンスを作成して呼び出すことと、その例との違いを認識できていません。私が見たのは、他の2つのクラスをプロセスに配置しただけで、どこにメリットがあるのか​​わかりません。今、私は明らかな何か(木のための木材)が欠けていると確信しています-誰かが決定的な実世界の例を使用してそれを説明できますか?


これまでの回答から私ができることは、これを行うためのより複雑な方法のように思えます。

[編集-更新]上記で参照した関数は、MoveAlongがこの新しいクラスに実装されたアルゴリズムに基づいて必要に応じて設定される属性となる別のクラスに置き換えられます。(受け入れられた回答に示されているものと同様です。)


[編集-更新]結論

ストラテジーパターンには用途がありますが、私はKISSを強く信じており、より単純でわかりにくい手法になる傾向があります。主に、保守が容易なコードを渡したいので(そして、変更を加えなければならないのはおそらく私です!)。

0 投票する
2 に答える
4848 参照

c++ - 政策に対する戦略と戦略に対する政策

Strategy パターンを初めて発見したとき、私と私のプログラムに無限の可能性をもたらしてくれたことに驚きました。モデルの動作をより適切にカプセル化し、この動作をその場で交換することさえできます。しかし、この戦略を使用して、含まれているオブジェクト (スーパークラスで宣言されたデータ) に特性とペイロードを提供することもできます。人生は順調でした。

そして、ポリシーパターンが登場し、それを含むクラスにパラメーターを提供する際の柔軟性がさらに向上しました-動作を動的に交換しますが、好きなように装備されたクラス全体...それはあまり簡単ではありませんでした(ポリシーの一部があった場合を除く)戦略を立てる!)

どちらのパターンも私には非常に強力なように思え、さまざまな状況で両方を使用するのが好きです。しかし、状況によっては、特定の/典型的な/より実用的なアプリケーションがあるかどうかはわかりません。

私は疑問に思っています: どこで戦略を使用し、どこでポリシーを使用しますか? どこがより適していますか?

0 投票する
19 に答える
91851 参照

java - 戦略パターンの実例

OCP の原則と、戦略パターンを使用してこれを達成する方法について読んでいます。

これを数人に説明しようとしましたが、私が思いつく唯一の例は、「注文」のステータスに基づいてさまざまな検証クラスを使用することです。

私はいくつかの記事をオンラインで読みましたが、これらは通常、レポート/請求書/検証の生成など、戦略を使用する本当の理由を説明していません...

戦略パターンが一般的だと思われる実例はありますか?

0 投票する
4 に答える
1703 参照

design-patterns - 戦略パターンが制御の反転にどのように関連しているかを誰かが説明できますか?

戦略パターンが制御の反転にどのように関連しているかを正確に説明できる人はいますか?

0 投票する
14 に答える
43548 参照

design-patterns - ブリッジパターンとストラテジーパターンの違いは何ですか?

私はドファクトリー、ウィキペディア、そして多くのサイトで多くの記事を読んでみました。ブリッジパターンとストラテジーパターンの違いがわかりません。

私はそれらの両方が抽象化をその実装から切り離し、実行時に実装を変更できることを知っています。

しかし、どのような状況で戦略を使用すべきか、またはどのような状況でブリッジを使用すべきかはまだわかりません。

0 投票する
6 に答える
3413 参照

c# - c#では、戦略パターンとデリゲートの違いは何ですか?

戦略パターンの実装例を見てきましたが、C# デリゲートに非常に似ているように思えます。唯一の違いは、戦略パターンの実装ではデリゲートを明示的に宣言する必要がないことです。

しかし、それ以外は、どちらも特定の署名を必要とする関数を指しているように見え、実行時に何を実行するかを決定するために使用できます。

私が見逃しているより明白な違いはありますか?

関連する質問は、それらが似ている場合、一方を他方よりも使用する利点は何ですか?