07/03/04 00:41:25
質問させてください。
C++によるオブジェクト間のメッセージ通信についてなんですが、
オブジェクトAがオブジェクトBを含有する構造の場合、
AからBへのメッセージ送信は、AがBのメソッドを呼び出すという形でOKですが、
BからAへのメッセージ送信はどう実装するのがベターなんでしょうか?
1.AからBのメソッドを呼び出し、戻り値をメッセージとして扱う、(BはAに処理させたい内容を戻り値で返す)
2.BにAの参照を渡しておいて、BからAのメソッドを呼び出す、
3.各オブジェクトにメッセージプロシージャを用意して、そこにメッセージを投げる、(ウィンドウメッセージのように)
あたりは試してみているんですが、どうにもソースがスパゲッティになりがちで悩んでいます。
現在は、オブジェクトへのアクセス手段を統一でき、尚且つ不要なメッセージを無視することが可能な「3」を用いて実装しているのですが・・・
何か他にいい手法はないでしょうか?