[706] Re:オブジェクト指向「初」入門
投稿者:CES
2007/02/20 02:13:25
>>「術語としてのクラス」に「辞書的な『分類』という意味」を期待する
>
>ことについてとやかく言った覚えはありません。
>いや、とやかく言っている、というのならその部分を引用して示してください。
このへん@684
> でも、「クラス」という言葉の辞書的定義が「分類」だったからといって、
> 術語として使われるときそのままの意味とは限らないし、「クラス」という
> 言葉を選んだ人が間違えたのかもしれない。だから、その言葉の意味に
> 過剰な期待をしてもしょうがないのでは、と言っているのです。
>私が最初から言っているのは、
>
>「クラスを辞書で引いて分類と書いてあるからといって、プログラムの設計の際に、
>クラスを分類として捉えることが正しいことになるわけではない」
>
>ということです。
だったら最初からそう書けばいいのに。
つか、684 からそれを読み取れというのは無茶と言うものです。
>[684]での引用を再度引用しますが、
>
>>この議論の最初のほうで、CESさんは
>>>例えば、「クラス」という用語の意味は「分類」であって、「原型」ではありませんから、
>
>と書いています。「ありません『から』」なんだというのでしょうか。
>もちろん、術語は用途をちゃんと表しているのにこしたことはないけれど、
>術語の方から、設計や分析についてのあるべき姿を導くことはできない。
「クラス」という用語の意味は「分類」であって、「原型」ではありませんから、「クラスはオブジェクトを作る原型になるもの」ではなく「クラスはオブジェクトを分類したもの」だと捉えるべきだ、ということです。
そして、そう捉えることは、まったく自然なように思われるのです(もちろん、実装の都合上、必ずしもそうとは言えないクラスが出てくることはあり得るでしょう。しかし、それらは例外として考えるべきであり、基礎としては無駄ではありません)。
>だから私は、術語なんかに期待するのではなく、
>
>>クラスを分類として考えるのがよいとCESさんがお考えなら、それが具体的に
>>有効であるケースを、例示して主張するのがよいのではないでしょうか。
>
>と、具体的な例示をするのがよいのでは、と言っているのです。
「クラス」という言葉の「辞書的用法」と「述語的用法」に関しての議論だとばかり思っていたので、「クラスを分類だと考えていない」とはまさか思いませんでした。
こうも書かれているのに。
># クラスを分類とする考え方を否定しているわけではありません。
> 「そのへんの入門書にある考え方だと、こういう例ではこういうモデリングを
> してしまいがちだけど、分類として考えればこんなモデリングになって、
> こういう拡張をするときのことを考えたらこっちのほうが修正箇所が
> はるかに少なくてすむよね」とか。
「サブクラスの方が機能が上」という考え方だと、is-a の関係を考えた時に「機能が豊富なものは機能がショボいものの一種」ということになって変だよね。
集合論(というか論理学のベン図)で考えれば、スーパークラスはサブクラスよりも一段階抽象的なので、直接比較できないことはわかるよね。
「サイヤ人とスーパーサイヤ人はどっちがすごいか」は、暗黙のうちに「サイヤ人=スーパーじゃないサイヤ人」という仮定を置かず、「サイヤ人はスーパーサイヤ人のスーパークラス」とする限り、比べられない(作中ではこの仮定が暗黙のうちに成立している)。
「スーパーじゃないサイヤ人とスーパーサイヤ人」ではスーパーサイヤ人の方がすごいけど、スーパーじゃないサイヤ人はスーパーサイヤ人のサブクラスではない。
…でいい?
「こう考えるといいよね」というよりも「こう考えないと明らかに変だよね」という感じなので、修正工数云々で対比することはできない。