Index: [Article Count Order] [Thread]

Date:  Tue, 13 Sep 2005 19:04:13 +0900
From:  MITSUJI Takamasa <mitsuji@....jp>
Subject:  [modeling-dojo:00466] Re: 複数の側面から分類したいとき
To:  modeling-dojo@....jp
Message-Id:  <74C5B84A7E152Dmitsuji@....jp>
In-Reply-To:  <20050913024041.93389.qmail@....jp>
References:  <20050913024041.93389.qmail@....jp>
X-Mail-Count: 00466

みつじです。

>> Cの関数ポインタとかC#のデリゲートとかでも同じようなことが
>> 出来そうですけど、こんな簡単には出来ないでしょうね。
>
>関数(メソッド)ポインタのような概念がある言語だと
>結構楽にできちゃいますね。
>デリゲートもメソッドポインタの一種のようですし。
>

Java でも Observer パターンとか使えば出来そうですね。
実装の容易さではずいぶん差があるとは思いますが。
デザインパターンなんかも、モデルのレベル間のギャップを
埋めるためのテクニックのひとつと見ることができるのかも。


>たしかJSも「関数をObjectの属性に代入しておく」ことで
>メソッドを実現するのでしたよね…。

そうです。JavaScript ではコンストラクタ(的な関数)も
その機能を使って実装したと思います。

ただ、ホームページ制作やっててオブジェクト指向な
JavaScript コードを見かけることはほとんどありません...
少しもったいないですね。



>--- MITSUJI Takamasa <mitsuji@....jp> からのメッセージ:
>> 面白いですね。インスタンス化してから機能を追加できるんですね。
>
>Rubyだとたまたま(^^;、
>
>> >ありゃ。同じmoduleを再び召還するのは駄目らしいです(^^;;;
>
>という風に敗北しちゃいましたが、
>敗北せず、きちん(?)とソレを実現できる言語を作ることは可能でしょうし、
>きっと既に実在していると思います。
>
>よく知りませんが、もしかしてJavaScriptとかだと、できるでしょうか?
>オブジェクトのprototypeっていう属性を適宜いじると、できるのかな…
>
>prototypeベースのOOP
>(というかOO:動的分類を「実際に使える」かどうかは
> 実装言語だけじゃなく"考え方"の問題でもあるでしょうから)
>だと、結局のところ型とかも属性の一種じゃないかという開き直り(^^;が
>できちゃったりするようです。
>
>#そういえば、うろ覚えですがたしかロールプレイングゲームには
>#「クラスチェンジ」という言葉があったんではなかったでしょうか?(^^;
>#あれですよ、あれ。
>
>状態遷移ならぬ「分類遷移」は、私が即興で考えた造語です。
>
>まあ、あんまりやると、「モデリング」畑からは嫌がられそうですが。
>静的分類と動的分類の境界が曖昧になるというか。
>
>> Cの関数ポインタとかC#のデリゲートとかでも同じようなことが
>> 出来そうですけど、こんな簡単には出来ないでしょうね。
>
>関数(メソッド)ポインタのような概念がある言語だと
>結構楽にできちゃいますね。
>デリゲートもメソッドポインタの一種のようですし。
>
>たしかJSも「関数をObjectの属性に代入しておく」ことで
>メソッドを実現するのでしたよね…。
>その手の言語は、まあ沢山(^^;あるわけですが、
>例えばその1つとして個人的に気になってるものとして
>Io (http://www.iolanguage.com) というのが有るようです。
>
>
>__________________________________
> Take an action against poverty
> http://pr.mail.yahoo.co.jp/whiteband/