Aufheben - GLAD!! の日記 このページをアンテナに追加

2005 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 |
2010 | 02 | 07 |
2011 | 01 | 02 |
2013 | 01 |
2015 | 07 | 08 |
2016 | 02 |

2008-01-12 (土)

[] Re: いまさらながらだけど、オブジェクトとクラスの関係を究めてみよう 15:59  Re: いまさらながらだけど、オブジェクトとクラスの関係を究めてみようを含むブックマーク

連休に入ったので、ちょっと気になってた檜山さんのエントリ

http://d.hatena.ne.jp/m-hiyama/20080109/1199863428

を読んだらはまってしまった。

昨日も会社で「知識レベルと操作レベル」「エンティティと値オブジェクト」の話を延々としていたし... 最近、抽象論議に縁があるみたい。(^^;)


まず最初に、上記エントリに対するあかさたくんの反応

http://born1981.g.hatena.ne.jp/akasata/20080109/1199871631

この最後の図が間違ってるよね。

↓正解はおそらくこんな感じ。

http://homepage2.nifty.com/glad/work/hatena/20080112/reification.png

下半分は実際の Java の言語構造だけれど、上半分は檜山さんの妄想。Java が上半分のようなメタな構造をもっていると想定すると、クラス・プレーンやオブジェクト・プレーンにも reify されたクラスやオブジェクトが出現するはず。それも追記しようかと思ったけど、めんどくさいし、図が見づらくなるのでやめた。

おそらく、メタクラス・プレーンの BUILT_IN_CLASS と USER_DEFINED_CLASS が、クラス・プレーンに reify されて BuiltInClass と UserDefinedClass ができ、さらにオブジェクト・プレーンに reify されて BuiltInClass.class と UserDefinedClass.class ができる。

さらに、メタメタクラス・プレーンの METACLASS が、メタクラス・プレーンに reify されて METACLASS.class? ができ、さらにクラス・プレーンに reify されて Metaclass ができ、またさらにオブジェクト・プレーンに reify されて Metaclass.class ができる感じ。あってるかな?


で、本題に戻ると。こんなこと考えて何のメリットがあるのか、ちゃんと整理したことはないけれど、まぁリフレクションとかツールの作成などでは役立つので、難しいことは専門家におまかせして、僕らはありがたく使わせていただきましょう。

最後にちょっとだけ疑問点。

  • レイフィケーションとパワータイプって同じような概念ととらえてよいのかな?
  • 檜山さんのエントリで、is-created-by とレイフィケーションは、他の関係と矢印の向きが逆な気がするんですけど、何か意図があるのでしょうか?