前田です。 # 癖でM-x mewしてしまいました。 On Fri, 4 Apr 97 20:28:32 JST, sinara / blade.nagaokaut.ac.jp wrote: | > 私は元々, super class/subclassの構成に関しては, 標準的というか純粋とい | > うか正規的であって, 変な継承の仕方は好みでありません. | > | > 例えば, Arrayのサブクラスとして(数学の)ベクトルを表すVectorを作るとか | > は絶対しません. そういう意味では, 純粋なSmalltalkerといえるのですが... | | なるほど。スーパークラス一部の能力を使いたいがために、安易に継 | 承してしまうのが気持ち悪いのですね。意味的にきちんと継承(包含) | 関係になければ継承しないと。 Smalltalkを実際に使ったことがないのではずしてるかもしれませんが... 以前「サクサクSmalltalk」という本がいいよと教えられて読んでみたので すが、こんなことが書かれていました。 (要約) 現実世界の事物をモデル化しようとする場合、コードの再利用の目的では なく、分類の考えに立って継承を利用してしまうことはありがちである。 しかし、サブタイプとサブクラスは異なる概念である。 両者の違いを示す一つの例として、円と楕円がある。現実世界では円とは 長径と短径の長さが等しい特殊な楕円の一種であると言える。つまり、円 は楕円のサブタイプである。しかしSmalltalkでそれを実装する場合、単一 の直径変数を持つスーパークラスとしてCircleを定義し、さらに変数を付け 加えたサブクラスとしてEllipseを作成するだろう。 これを読んでなるほど、と思った記憶があります。 rubistとしてはどちらの考え方が良いのかな。 前田 修吾