Index: [Article Count Order] [Thread]

Date:  Mon, 06 Feb 2006 13:57:30 +0900
From:  KAMO Masahiko <*****@**.*******.***>
Subject:  [oosquare-ml:04739] Re: UMLでの集合表現について
Sender:  *******************@**.*******.**.**
To:  オブジェクトの広場メーリングリスト <***********@**.*******.**.**>
Message-Id:  <**************.***********@*****.***.***.*******.***>
In-Reply-To:  <**************.***********@*****.***.***.*******.***>
References:  <**************.***********@*****.***.***.*******.***>	<***********************************@***.***>	<**************.***********@*****.***.***.*******.***>	<**************.***********@*****.***.***.*******.***>
X-Mail-Count: 04739

加茂です.
念のため.

以下の例ではUser#getId()とEmployee#getId()の責任が異なっているから
分けて扱えるようにTaroインタフェースを作っていますが,
もし責任が同じだったとしたら単に両方を多重継承するだけでOKです.
こういった判断が
> > > >継承するそれぞれのインタフェースが束ねるシグネチャと責任に注意しよう,
ということです.

以上

At Mon, 06 Feb 2006 13:11:38 +0900,
KAMO Masahiko <*****@**.*******.***> wrote:
> 
> 加茂です.
> 補足です.
> 
> 例えばちゃんと注意してこんな感じに収めよう,というのが私の意見です.
> 
>     interface User { String getId(); }
>     interface Employee { String getId(); }
>     interface Taro extends User {
>       Employee asEmployee();
>     }
>     class TaroImpl implements User {
>       String getId() {
>         return "User ID";
>       }
>       String asEmployee() {
>         return new Employee() {
>           public String getId() {
>             return "Employee ID";
>           }
>         }
>       }
>     }
>     class Exec {
>       void exec() {
>         Taro taro = new TaroImpl();
>         ...
>         User usr = taro;
>         ...
>         Employee emp = taro.asEmployee;
>         ...
>       }
>     }
> 
> 
> 以上

---
加茂 昌彦 (KAMO Masahiko)
*****@**.*******.***
富士通株式会社 ソフトウェア事業本部
開発企画統括部 MDA技術プロジェクト
内線: 7128-3218
外線: 045-476-5146
http://www.mda.css.fujitsu.com/

-------------------------------------
オブジェクトの広場
http://www.ogis-ri.co.jp/otc/hiroba/