1

オークションサイトを作成中です。オークションにはさまざまな種類があります。オークションの種類に応じて、勝者の宣言が行われます。

例:-*オークションの1つのタイプ:-より高い入札をしたユーザーが勝ちます。*他のタイプの場合:-最低入札価格のユーザーが勝ちます。*一部のタイプ:-所有者が勝者を決定します。*一部のタイプ:-最初の10人の入札者がオークションに勝ちます。

ストラテジーパターンは、「オークションの勝者」を決定するモジュールの設計に適しているようです。

それで

「オークションの種類」に基づいて、システムが適切なアルゴリズムを選択して勝者を決定します。勝者を選択するためにオークションの種類に必要なすべてのパラメータが提供されます。私は、勝者宣言モジュールを実装するために戦略パターン(AOP方式である可能性があります)を使用することを考えています。

このアプリケーションはSpringFrameworkに基づいていますが、上記の問題を処理するためのエレガントなデザインを誰かに提案してもらえますか。どのパターンを使用すればよいですか?AOPに行くべきですか?

必要に応じて詳細をお知らせします。

前もって感謝します。

4

3 に答える 3

4

これは幅広い質問であり、私の答えは、「どのパターンがここに適合するか」ではなく、単純なオブジェクト指向構造を使用して問題を正しくモデル化することに集中することです。パターンはおそらく出現するでしょう、そしてあなたはそれらにすぐに名前を付ける必要はありません。

また、Springを初めて使用する場合に備えて、AOPを忘れることをお勧めします。今は役に立ちません。また、AOPを使用するために使用しても効果はありません。

ps戦略はここでは良いようです。

于 2010-12-31T10:29:08.073 に答える
3

この質問にSpring固有のものは実際にはありません。はい、戦略パターンはおそらく正しい選択です。

オークションの勝者を決定するためのサービスインターフェイスを作成し、その1つ以上の実装を作成します。ビジネスコードでは、実装クラスではなく、常にサービスインターフェイスを参照してください。そうすれば、実装を簡単に切り替えることができます(Springの有無にかかわらず)。(Joshua BlochのEffectiveJavaを読んで、インターフェースを使用したプログラミングをよりよく理解してください)

春のAOPを忘れてください。それは多くの問題を解決しますが、あなたの問題は解決しません。問題は、アプリケーションのコアモジュールを定義し、それらを相互に接続することです(これは通常、Springまたは別のDIコンテナーで行われます)。

基本的に、サービスインターフェースを作成するときは、「これは何をすべきか」を決定する必要があります。そして、あなたがインターフェースを実装するとき、あなたは「これはどのようにそれをすべきか」を決定します。

于 2010-12-31T11:55:15.680 に答える
0

次のシナリオを使用できます。Bean

のリストを持つ1つのメインBean。フローを表す各Bean(「最高入札額」、「最低入札額」など)。それらをflowBeansと呼びましょう。
各flowBeanには、1つ以上のchoiseBeanが必要です。
choiseBeanは、オークションの入力に基づいて、flowBeanを実行するかどうかを決定します。

例を提供できず申し訳ありません


。PS:私の提案に加えて、私はcherouvimに同意します!

于 2010-12-31T10:38:58.857 に答える