2011-07-26 9 views
1

私は2つのオブジェクトObjectAとObjectBを持っています。 ObjectAはObjectBのイベントを呼び出す必要があります。私は誰もがこれを行うためのパブリックメソッドを公開したくないので、ObjectAがこれを行うための良いデザインパターンを探していましたが、ObjectAは実際にそれらのイベントを起動する作業を行う必要があります。2つのオブジェクトの相互作用の間のデザインパターン

これには良いパターンがありますか、それともアドバイスですか?

ありがとうございました。

+1

より具体的な問題を記述することは、私たちは、あなたが本当に優れて必要なものを見つけ出す役立つだろう。あなたが言っていることから、それはただの範囲です。 ObjectBは公開したくないObjectAのメソッドにアクセスする必要があります。だから彼らは "友達"でなければなりません。 –

+0

言語がjavaまたはc#の場合、それらのメソッドに「パッケージ」可視性を持たせることができます。 –

+0

ObjectAはプロバイダクラス、ObjectBは.NETコントロールです。 .NETコントロールを本当に大きくするのではなく、私はプロバイダ(ObjectA)を使用しますが、ObjectAを持ってオブジェクトBのイベントを呼び出す必要があります...私は多分、 else。 –

答えて

1

をObjectAがObjectBに

のイベントを呼び出す必要がありますあなたはそれを記述する方法は、Commandパターンの通常の容疑者を作るBにコマンドを送信するように聞こえます。 Mediatorパターン

+0

ありがとう、私はそれを見ていきます。 –

3

オブジェクトが別のクラスのメソッドを呼び出す必要がある場合、それは実際には良いデザインのようには聞こえません。

+0

クラスのインスタンスは常に他のクラスインスタンスのメソッドを呼び出します...それはOOPに共通しています... –

+0

あなたは多くの、 OOPの実装 –

+0

アーメン。しかし、建築が私のデザインを強要しているので、私の2番目のコメントを見てください。そうでなければ、私は実際には本当に大きなコントロールを持っています。 –

0

おそらくObserver Patternを考える - AとBの間の緊密な出会いを確立する

また、方法は、それらの相互作用が媒介するために別のオブジェクトCを確立正当化するのに十分な複雑になるかもしれません。これは通常、あるオブジェクトが別のオブジェクトから通知を受け取る必要がある場合に使用されます。

UML From Wikipedia

関連する問題