none
各オブジェクトにある同一名のメソッドを共通処理したいのですが・・・ RRS feed

  • 質問

  • たとえば、「掃除」というメソッドがあった場合、「トイレ」オブジェクトの「掃除」、「

    浴室」オブジェクトの「掃除」、「台所」オブジェクトの「掃除」を、いっぺんに動作させる方法はないのでしょうか。

    当然、「掃除」の内容は、各オブジェクトごとに違います。

     

    実際には、主婦ではなくて、画像処理関連のプログラム開発をしています。この種のプログラミングでは、さまざまな画像処理アルゴリズムが登場します。当然、それらの追加や削除も多く発生します。それぞれのアルゴリズムには、そこで使われている設定内容などのセーブ、ロードが必要になります。これらが、xxxxx.save とか xxxxx.load とかで一括して出来ると、いいのですが。

    2007年11月6日 2:18

すべての返信

  • 意味を取り違えているかもしれませんが、マルチキャストデリゲートやイベントなどを使えばいいんじゃないでしょうか?

    2007年11月6日 3:56
    モデレータ
  • ワクさん、こんにちは。

     ワク さんからの引用

    たとえば、「掃除」というメソッドがあった場合、「トイレ」オブジェクトの「掃除」、「

    浴室」オブジェクトの「掃除」、「台所」オブジェクトの「掃除」を、いっぺんに動作させる方法はないのでしょうか。

    当然、「掃除」の内容は、各オブジェクトごとに違います。



    Interface としてメソッドを実装すれば Interface を介して違う動作を実行できます。

    いっぺんに動作させるならば For Each + Interface の型検証で実行できます。
    その Interface が入る Collection か Generics でも用意しておいても良いでしょう。

    2007年11月6日 4:03
  • こ゛両名には早速にご回答を頂き、ありがとうございました。何分、.NET初心者のため、まずそれぞれの回答に寄せられた用語や内容に沿って、答え探しをして行きたいと思います。

    今回の趣旨としては、システムに新しい画像処理アルゴリズムオブジェクトが追加されたり、あるいは取り除かれたりしても、システム全体に共通するセーブとかロードとかの管理をする部分を気にする必要のない(変更する必要がない)、そのようなシステム構造が構築できないかとの思いで、質問させていただきました。

    また、初心者ですが参考になるご意見が聞かせていただければ幸いです。

     

    2007年11月6日 13:18
  • ワクさん、おはようございます。

    デザインパターンを研究されるといろんな場面に対応できるようになると思います。

    Visual Basicに限ったことではなくてオブジェクト指向言語に役立ちます。

    今回の場合はStrategy パターンに相当すると思います。

    http://www.techscore.com/tech/DesignPattern/

    2007年11月6日 23:56