加茂です.
念のため.
以下の例では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/