[前][次][番号順一覧][スレッド一覧][生データ]

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.]