> ゲンジツ(?)には、
> 「メジャーな言語(Javaとか)での実装という観点から」という風に
> 話を絞るという手は有るかと思います。
実装を例にしたのは、逆説的ですが、そのほうが、事実が良く
見えるかな、と思ったからです。
モデリングをする最終目的は何か、といえば、
コードを書くことだというのが僕の認識です。
そういう意味からすると、実装とモデリングはギャップが
少ない方が好ましいですよね。
そもそもオブジェクト指向というのは、手続き型開発に
あった、モデリング、設計、実装のギャップを埋めるために
出てきた技術だと認識しています。
だからといって、モデルを歪めても良いのか、というと
僕も、出来るならば、歪めない方が良いと思います。
しかし、ここの例にあった、「私」、「起きている私」、
「寝ている私」では、汎化を使わずに、委譲を使った関係に
することで、本質が見えるカナと思ったわけです。
# オブジェクト指向の難しいところは、正解が1つでは
# ない、ということですね。
汎化 = is a 関係なわけですが、
「私は○○○の役割がある」とか
「私は×××の状態がある」などと別の表現に
置き換えることができるのならば、
汎化を使わないほうが、返って現実をより良く表すことに
なるのかな、と思います。
「役割」については、汎化を使ってはだめ、というのは
ほとんどの人が異論を挟まないと思いますが、
「状態」については、それぞれ意見が異なるという
ことでしょうね。
それは、分析ではなく、設計時に考えれば良いことだ、
と言われれば、それまでですが...
idei