K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>1)インターフェース継承による多重継承によりWINDOWを表す方法 >>2)集約によりWINDOWをもつ方法 >>の2つでは、若干違いがあると思います。 >>クラスのクライアント側から見た場合、2)の場合、あくまでも外面は >>TREE_NODEであり、WINDOWではない訳です。 > >ちょっと今まで出た案を整理しますね。 > >案1)多重継承。WINDOWがSCREEN_OBJECTとTREE_NODEを多重継承する。 >案2)インタフェースと委譲を使う。WINDOWはSCREEN_OBJECTを継承し、 > TREE_NODEインタフェースを実装する。 > TREE_NODEの実装はTREE_NODE_IMPLクラスにあって、WINDOWは > TREE_NODE_IMPLへの参照を保持し、add_child()などのメソッドを > そっちに委譲する。 >案3)コレクションクラスTREEを作り、そのTREE_NODEがWINDOWへの > 参照を保持するようにする。 > >案3)は、私がうっかりこれでいいかと思っちゃった案ですが、WINDOWの場合は >ダメです。たとえばWINDOWのrepaint()メソッドが呼び出されたとき、 >WINDOWは自分の子を再帰的にrepaint()しなければなりません。 >つまり、「外から見て木構造に見える」のではダメで、 >WINDOW自身が自分の子を知っていないといけないわけで、 >TREE_NODEからWINDOWに参照を持つような構造では困ります。 > >案2)ですが、この方法で、外から見れば多重継承と実質同じことができますが、 >考えてみれば、外から見て、WINDOWがTREE_NODEに見えて嬉しいことは >なさそうなので、わざわざinterfaceを使う必要はなさそうです。 >つまり委譲だけでよいと。で、何に委譲するかですが、TREE_NODE_IMPLなんぞ >作らなくても、ArrayListで良いような… > >こう考えると、このケースでも多重継承は不要ですねえ。 > >>ところで、知っていたら教えてほしいのですが、PerlとCのリンク方法で >>詳しいページとか書籍とかあったら教えてほしいです。 >>つまりCのメモリ上にPerlで処理したデータを取得したいのです >>(外部ファイルとか、ソケットなどを使わずに)。 > >Perlは詳しくないですが、PerlからCを呼ぶことぐらいはできるはずなので、 >ラクダ本第2版を今見てみました。perlxstutというキーワードが出てきたので >Googleして見つかったのがこちらです。 > >http://www.kt.rim.or.jp/~kbk/perl5.005/perlxstut.html >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!