1

次の状況で使用する正しいデザイン パターンを探しています。

実行中のプロセスがあり、このプロセス中にシステム内のオブジェクトにいくつかのプロパティをアタッチする必要があります。オブジェクトは同じタイプですが、実行時にわずかに異なる動作を示す可能性があるため、プロパティの設定方法はタイプによって異なる場合があります。

これらのオブジェクトのタイプと動作に関係なく、それぞれに同じプロパティを設定したいと考えています。

次に、プロセスの別の時点でこれらのプロパティを解析するためのオブジェクトが必要です

これにアプローチする最良の方法は何ですか?

4

2 に答える 2

1

コーディングする前にデザインパターンを選択しないことをお勧めします。まず、コードを記述します。次に、冗長なコード、または変化するコードの抽象化を開始します。変化する抽象化コードを理解するには、Head FirstDesignPatternsをお読みください。その本の冒頭には、戦略パターンを使用して、変化するものを抽象化する例があります。SimUDuckの例には、私がこれまでに見た中で最もよく説明されている戦略パターンの例の1つがあります。それがあなたが求めていることのように聞こえます。ただし、質問にはあなたがやろうとしていることの具体的な例がないため、ここで具体的な例を示すことは困難です。

そうは言っても、ここでは古き良きポリモーフィズムが必要なようです。すべてのオブジェクトを同じように扱い、同じプロパティを異なる値で設定する必要があります。これを行うには、インターフェースを作成し、さまざまなタイプすべてにそのインターフェースを実装させます。次に、呼び出し/消費コードで、これらの具体的なタイプのそれぞれをインターフェースとして扱います。

最初にデザインパターンを選択しようとすると、多くの場合、実装の詳細に基づいて状況が変化することに気付くでしょう。また、デザインパターンに対する最初の推測は、間違った適合になってしまいます。次に、実際の問題を解決せずに、デザインパターンを満たすようにコーディングすることになります。醜い場合でも、最初にコードを記述します。それを機能させます。次に、抽象化する領域を見つけます。そうすれば、それ自体が自然にデザインパターンに進化します。

于 2012-12-16T15:33:45.147 に答える
0

私が正しく理解している場合は、実行時に動作を追加する必要がありますか?はいの場合、そう思います-デコレータ(別名ラッパー)のデザインパターンは良いかもしれません。

于 2012-12-16T13:09:06.727 に答える