langsmith:100
From: W <ttn3w7u2fs mx6.ttcn.ne.jp>
Date: Mon, 23 Aug 2004 22:47:43 +0900
Subject: [langsmith:100] Re: パターン支援言語? ご意見拝聴
Takuo Yonezawa wrote: >るとです。 > >1:n関係であるということは >Author:Book = 1:nとすると >author1.book = [book1, book2]として >book1.author = author2とすると >author1.book = [book2]とならなければならないことです。 >なので単純に1:nかつn:1としてしまうと動かなくなります。 > > 私の説明不足でした。失礼致しました。 2') Auther : Book = 1:n 3') Book : Auther = 1:n とある場合、これはそれぞれ個別の関係となります。SQL で表現すれば(正確で はないですが): create table auther_book ( auther_id oid unique; book_id oid; ); create table book_auther ( book_id oid unique; auther_id oid; ); の2つとなります(oid はリファレンス型。PostgreSQL の表現を借りてます)。 まあ、結果として多対多であることには違いないのですが。 ちなみに、私の妄想している(^^;)パターン支援言語では、多対多の関係を2つ のクラス間に張りたい場合、 m_to_n Auther, Book; などと定義することで可能(と想像)。 さらに補足しますと、m_to_n パターンや Aggregate(1:多)パターンにはオペ レーション(メソッド)がつきます。要素の追加は Publisher p; Book b; Aggregate.add(p, b); という感じになります。 通常のオブジェクト指向の表記 p.add(b); とはちょっと違いますね。 こんな感じで、例えば MVC パターンも class RGB {unsigned char r, g, b;}; : MVC RGB, X, Y; と定義するだけで、RGBカラー選定 GUI が 3つのクラス RGB, View X、コント ローラ Y の間に張れるようになると簡単かなと・・・。 まあ、想像するだけは簡単ですが、実行が大変なのは理解しています。上の例の MVC を実際にどう実装するかはまだ想像できませんm(__)m。ただ、上で述べた Aggregate や m_to_n などは既に Jiri のライブラリ(+専用プリプロセッサ) で実現できているものなので、後はどうそれをスマートに新言語で表現するかだ とは思うのですが…。 アスペクト指向とやらで実現できるものなのか、もう少し調べてみます。 // W -- ML: langsmith quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
96 2004-08-21 23:23 [ttn3w7u2fs mx6.ttcn.] パターン支援言語? ご意見拝聴 97 2004-08-22 13:13 ┗[takuo aya.or.jp ] 98 2004-08-22 22:34 ┗[ttn3w7u2fs mx6.ttcn.] 99 2004-08-23 10:12 ┗[takuo aya.or.jp ] -> 100 2004-08-23 22:47 ┗[ttn3w7u2fs mx6.ttcn.] 101 2004-08-23 23:29 ┣[eclipse cspc.jp ] 102 2004-08-24 22:38 ┃┗[ttn3w7u2fs mx6.ttcn.] 103 2004-08-25 00:11 ┃ ┣[eclipse cspc.jp ] 107 2004-08-25 11:27 ┃ ┗[shiro lava.net ] 108 2004-08-25 13:14 ┃ ┗[shiro lava.net ] 105 2004-08-25 00:30 ┗[takuo aya.or.jp ] 110 2004-08-30 22:29 ┗[ttn3w7u2fs mx6.ttcn.]