掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
インスタンス同士でお互いに呼び出す (ID:102161)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
主が帰ってきたので期待あげw …のついでにレスを。 >ななさんの言うプロパティ経由で参照を渡すのでもいいけど 意図的にはあまり違いませんが、私の提示したコード例はプロパティ経由じゃなくメソッド(公開されたSub関数)経由のものです。 一応、クラスを理解していない方が読んだとき無用な混乱をさせたくないのでレスしました。 揚げ足取りですいませんw 循環参照は持たせるべきではないってのは、本当おっしゃるとおりだと私も思います。 どうしても循環参照せざるをえないとか、そうするしか○○を実現できないというのでなければ、出来るだけ循環参照自体を避けるべきです。 ですが本人の希望もあるでしょうから望み通りの方向で提示したつもりです。 ペンネームさん、もし細かいところでわからない事があれば遠慮なく聞いてみて下さい。ばかばかしい話でも適当に答えます。 もちろん他の常連の方々のほうがよくご存知でしょうけれども、私いまとっても暇人ですので余裕ですw 以下蛇足なのですが。 私は職業プログラマーではなく素人なので考え方が相当違うと思いますが、循環参照を持たせると特に両者のイベントを検出できる点でとっても面白いコーディングが出来て楽しいですね。 自立的なプログラミングというか、それぞれのクラスが自発的に共生動作するというか・・・その仕草が自立AIみたいでとても好きです。 イベント経由で連携させるとクラスが無駄なPublicメソッドやプロパティを公開しなくてもよくなるので外から見たときすっきりしててほかのコーディングが楽だったりもします。 例えば親クラスの中に多段の入れ子になった子クラスを作りそれぞれの親子で循環参照させ、自身に起こった事やデータをイベントで伝え合うとか、中間の親はその親に子のイベントを中継したりして大元の親は直下の子のイベントだけ見ていれば他のすべての(例えば数万の)子クラスの状態を常に監視することが出来たりしてすごいことになったり。 ただイベントの発生順の考慮と、各クラスを破棄するコーディングがとにかく大変でしたw (これもイベント経由で参照の破棄命令をやり取りさせる事でわりと簡潔なコードになりましたけど) 結局、循環参照は危険だ!という事にやっと気付いた私は参照を持たずに両者がイベントを利用するにはどうすればよいか悩み結局イベント中継クラスを設計して解決したりしました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.