平鍋です.
まずは,こちらから.
Hidehiko AKASAKA wrote:
> Akira Kawamata <autumn@....jp> san wrote:
>
> > 個人的な感想から言うと、「自然な役割分担」と思う状態は個人によって差が
> > あって、誰もが曖昧さなく納得するのは難しいような気がします。「シンプル」
> > というのは、「重複がなく、これ以上リファクタリングすべきコードが残ってい
> > ない」と言い換えれば、達成したかどうかが誰でも同じ基準で納得できるような
> > 気がします。
>
> Kenji HIRANABE <hiranabe@....jp> san wrote:
>
> > (A)現実の世界と直接対応【Direct Mapping Principle】(by Meyer)
> > (B)シンプルである(直接対応でないが,簡単である)(by Beck)
> >
> > という2つの分担方針があるか,と思います.どちらの場合にも当てはまる,
> > 責務分担の原則は,次に原則に照らして評価できます.
>
> 川俣さんのシンプルが(B)に対応するのだと思いますが、
>
> 「シンプル」で、かつ「自然な役割ではない」
>
> というケースを想定できないということです。
> 「シンプル」に作ったものは「自然な役割」に落着いているのではないかと。
以前,Kent Beck に矢崎さんが果敢に試みた有名な質問があります.
「ユーザ情報」クラスに「電話番号」がある場合電話クラスを作りますか?
class User { String telephoneNumber; }
が Kent Beck のシンプルな回答.
class User { Telephone telephone; }
class Telephone { String number; public void call(); }
が現実世界に近いモデリングかな.これについてどう思いますか?
ちなみに,羽生田さんの回答は,
「Kent Beckにモデリングの質問をしてはいけない」 ^^;
以上