問題タブ [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 投票する
3 に答える
2288 参照

java - パラメータ化された戦略パターン

戦略パターンを実装する Java クラスがいくつかあります。各クラスには、さまざまなタイプの可変数パラメーターがあります。

ここで、ユーザーがある種の UI でパラメーターを入力できるようにしたいと考えています。UI は実行時に選択する必要があります。つまり、戦略はそれから独立している必要があります。パラメータ ダイアログはモノリシックであってはならず、戦略や UI (コンソールや Swing など) ごとに動作や外観を変えることができるようにする必要があります。

この問題をどのように解決しますか?

0 投票する
3 に答える
3817 参照

c# - コスト計算アプリのデザインパターン?

以前に助けを求めようとした問題がありますが、その時は解決できませんでした。そのため、問題を単純化して、これについてより具体的な助けが得られるかどうかを確認しようとしています。私を夢中にさせている…</p>

基本的に、私はこのアプリケーションの実用的な (より複雑な) バージョンを持っています。これはプロジェクト コスト計算ツールです。しかし、私は同時にアプリケーションをより良く設計する方法を学ぼうとしているので、この設計をどのように改善できるかについて意見を求めています. 基本的に私が欲しいのは、(ここでは) 2 つの場所で繰り返される条件文への入力です。以前に得た提案は、戦略パターンまたは工場パターンを使用することでした。また、マーティン・ファウラーの本で、ポリモーフィズムによる条件付きリファクタリングを提案していることも知っています。私は彼のより単純な例でその原則を理解しています。しかし、ここでこれらのことのいずれかを行うにはどうすればよいですか (適切な場合)。私の見方では、計算はいくつかの条件に依存しています: 1. それはどのような種類のサービスですか? 2. プロジェクトは小規模ですか。中か大か?(「製品は新しいものですか、それとも既存のものですか?」など、他のパラメーターも同様に異なる場合があることに注意してください。したがって、そのようなパラメーターは追加できるはずですが、例を単純にするために2つのパラメーターのみを使用するようにしました具体的な助けを得ることができます)

したがって、ポリモーフィズムを使用したリファクタリングは、最初の条件 (サービスの種類) に対して既に持っているいくつかのサブクラスを作成することを意味し、2 番目の条件 (サイズ) に対してもさらにサブクラスを作成する必要がありますか? AnalysisSmall、AnalysisMedium、AnalysisLarge、WritingSmallなど…??? いいえ、私はそれが良くないことを知っています.とにかくそのパターンを扱う方法がわかりませんか?

基本的に、戦略パターンを使用するという提案についても同じ問題が見られます (工場パターンは、上記のポリモーフィズムを達成するためのヘルパーにすぎません)。ですから、これらのクラスを最適な方法で設計する方法について具体的な提案があれば、本当に感謝しています! オブジェクトを正しく選択したかどうか、または再設計する必要があるかどうかも検討してください。(「工場のパターンを考慮する必要があります」などの回答は明らかに役に立ちません...私はすでにその道を進んでおり、この場合の正確な方法に困惑しています)

よろしく、

アンダース

コード (非常に単純化されています。データなどに構成ファイルを使用せずに、列挙型の代わりに文字列を使用しているという事実を気にしないでください。これらの設計上の問題を理解したら、実際のアプリケーションで必要に応じて実行されます。 ):

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

hibernate - HibernateとSpringを使用したスト​​ラテジーオブジェクトの管理

これは、スタックオーバーフローのアナロジーでよりよく説明される設計上の質問です。

ユーザーはバッジを獲得できます。ユーザー、バッジ、獲得バッジはデータベースに保存されます。バッジのロジックは、バッジ条件戦略によって実行されます。バッジ条件戦略は複雑なツリー構造オブジェクトであるため、データベースに保存する必要はありません。

データベースに保存されているバッジをバッジ条件戦略に関連付けるにはどうすればよいですか?回避策しか考えられません。例:バッジごとに1つのクラスを作成し、SINGLE_TABLE継承戦略を使用します。または、データベースからバッジを取得し、プログラムで正しいバッジ条件戦略を検索して挿入します。

より良いデザインを提案してくれてありがとう。

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

c++ - 最も適切な設計パターンはどれですか?

4 つのアルゴリズムのいずれかを使用できるクラスを作成したいと考えています (使用するアルゴリズムは実行時にしかわかりません)。Strategy 設計パターンは適切に聞こえると考えていましたが、私の問題は、各アルゴリズムがわずかに異なるパラメーターを必要とすることです。戦略を使用するのは悪い設計ですが、関連するパラメーターをコンストラクターに渡しますか?

以下に例を示します (簡単にするために、考えられるアルゴリズムが 2 つしかないとしましょう) ...

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

tdd - ストラテジー パターンを使用した TDD

TDD を使用して戦略パターンを実装しようとしています。各戦略項目はインターフェースを実装します。TDDでこれを行う最良の方法は何ですか?

同じメソッドをテストするインターフェイスの実装ごとに、実装ごとにテスト フィクスチャを作成する必要がありますか?

取るべきアプローチを詳述する記事は、感謝して歓迎されます:)

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

java - .NET アクションに相当する Javaと関数など

System.Action<T>JavaやSystem.Func<T,U>.NET などに、標準的な汎用の「コールバック」または「関数/メソッド」型はありますか?

私の具体的なケースでは、型の 1 つの (ジェネリック) パラメーターを取り、T何も返さない (つまりvoid) メソッドをラップするクラスが必要です。

はい、自分でそのようなクラス/インターフェイスを作成するのは簡単ですが、標準ライブラリ クラスがある場合はそれを使用したいと思います。

0 投票する
1 に答える
2220 参照

design-patterns - 一般的なパターンの命名規則?

EventArgsなどを渡すEvent/Handlerを使用したObserverパターンの命名規則(つまり、C#などの言語のイベントの命名規則)と同様に、コード内の他のパタ​​ーンを簡単に強調するために使用する命名規則があります。 ?

編集:私はもともと戦略パターンについて質問したかったのですが、一般的なパターンにも存在する可能性のある他の規則について知っておくと役立つと思いました。

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

c# - 戦略パターンを適用する際に、一部のサブクラスで未使用のメソッドパラメーターを回避する良い方法はありますか?

次のシナリオでは、販売価格を計算するためのさまざまな種類の販売アルゴリズムがあります。FixedSaleStrategyはbasePriceパラメーターを必要としませんが、他のすべての戦略実装はそれを必要とします。この冗長なパラメータを回避する良い方法はありますか?

0 投票する
1 に答える
313 参照

objective-c - Coredata:戦略パターンの実装

CoreDataとObjectiveCを使用して戦略パターンを実装しようとしています。

簡単にするために、たとえば、最後に保存Textされたforや作成者などのいくつかの属性を持つ多言語エンティティがあります。エンティティへの参照を追加します。これは、次のようないくつかのサブクラスの1つである可能性があります。、などのように、クラス名の言語でテキストのを保持します。各サブクラスは独自のメソッドを実装でき、インスタンスはそれについて心配する必要はありません。シンプルな戦略パターン。DateNSSStringLanguageFrenchItalianNSStringLanguagetranslateTotranslateFromText

yuml.meによって作成されましたhttp://yuml.me/1caedd69

インスタンスの詳細に応じて特定のTextエンティティを独自の実装で設定できる、CoreDataとのこの種の関係を設定するのに本当に苦労しています。Language

一言で言えば、私がやろうとしているのは、「has-a」関係を作成することだと思います。この場合、エンティティ内のTextエンティティは、のいくつかのサブタイプの1つになりLanguageます。

Core Dataは私にとって非常に新しいので、ここでのポイントを完全に見逃している場合、または明白な何かを見逃している場合は、私に知らせてください。

0 投票する
7 に答える
6115 参照

c# - C# で戦略パターンを使用するには?

これが私がこれまでに持っているものです:

Character.cs スーパークラスがあるとします。子クラスがより具体的になるように、そのスーパークラスが武器の動作をどのように実装できますか。

どうすればこれを実装できますか? 実際のコードがどうあるべきかについて非常に混乱しています。

質問が多すぎるかもしれませんが、実際のコードを書いて研究できるようにしていただけると助かります。コードを見て学ぶ。:P 多くの人がこの質問から恩恵を受けることができます.