3

私はいくつかの設計の助けを必要としています。私にはクラスがあります。それを、いくつかの動作を実装できる宇宙船と呼びましょう。各動作がサポートする操作を宣言するためのインターフェースを定義しました。これまで、これは古典的な戦略パターンです。

ただし、実装された戦略は、コンテキストクラスでアクションとメソッドを呼び出すことができる必要があります。私は、カプセル化されたアルゴリズムへのインターフェース自体としてコンテキストを渡すことを考えてきました。

これが最善のアプローチですか?そうでない場合、あなたは何をお勧めしますか?

ここに画像の説明を入力してください

4

2 に答える 2

3

あなたがやろうとしていることは私には問題ないようです。考慮すべきことの1つは、動作クラスのメソッドにあまり多くを渡さないことです。たとえば、宇宙船にが付いている場合は、宇宙船全体ではなく、あなたとengine behaviourだけを渡します。fuel tankdrive unit

于 2013-01-01T06:36:10.097 に答える
1

戦略にコンテキストが必要なものに応じて、オブザーバーパターンを使用してイベントベースにすることも検討できます。これにより、戦略がコンテキストに結合されなくなります。

例としては、戦略によってコンテキスト内の何かが変更された場合、これらは一部の仲介者(またはコンテキスト自体)がサブスクライブするイベントである可能性があります。

于 2012-12-31T13:29:51.163 に答える