From: ogino@... Date: 2000-03-06T18:47:17+09:00 Subject: [ruby-list:21221] Re: メソッドの入り口 荻野です。 たくさんのご意見、感謝します。 At Fri, 3 Mar 2000 17:08:48 +0900, Minero Aoki wrote: > そのような環境においてクラスをチェックしてみても意味がありません。 At Fri, 3 Mar 2000 16:02:08 +0900, matz@netlab.co.jp (Yukihiro Matsumoto) wrote: > 1は必要なメソッドを持つかどうかでチェックし、クラスでのチェッ > クは行わない方が良いのではないかというのが私の考えです。つ > まり、ほとんどの場合、あるクラスのサブクラスである必要より > も、ある名称(と機能)を持つメソッドが呼べるかで決まるように > 思うからです。そういうメソッドが無ければNameErrorが出るので > 分かると。 結局引数として与えられたオブジェクトについては、欲しいタイプのオブジェ クトかというよりも、こちらが必要としているメソッドを持っているかが重要 なのだ、ということですね。 > しかし、もちろんデバッグ時に「ここは String のはず」というように > チェックをしておくのは意味があります。 どうも私の書くものが万年デバッグ状態なのが問題です... At Fri, 3 Mar 2000 16:31:56 +0900, Shin-ichiro Hara wrote: > Ruby の(オブジェクト指向言語の?)データの「カプセル化」とは、オブジェ > クトにアクセスするメソッドや変数を制限するのであって、オブジェクト自体を > 保護するのではないですよね。(freeze という例外はあるけど。) うーん、そうなんですか。私にはカプセル化という言葉にはメソッド以外から データを操作されないというイメージがあります。new メソッドの引数が指す オブジェクトをインスタンス変数がそのまま指すというのは珍しくもないと思 いますが、そうするとオブジェクトの知らないところでインスタンス変数の指 す先の中身が変化していることがあり得るわけで、ということはクラスを利用 するほうがオブジェクトの中身を壊さないことを気をつける、または壊しても 良いかどうかを気にかける、そのためにクラスの実装を気にするということに なるのではないか、という気がしてちょっと違和感があります。 オブジェクトを変化させるほうが問題で、そのことによるリスクは破壊的に操 作する方が責任を持てという考えで良いのでしょうか。 > 多分、慣れ > れば、必要な時だけ破壊的な操作をし、必要な時だけ dup する、いう感じで、 > 「壊れるかも知れないから、念のためにさしあたってコピーを取っておこう」と > いう様な事は全く無くなると思いますよ。 なんとなく雰囲気はわかりますので、精進するように努力いたします。しかし、 感覚としては「壊れる」というより「壊される」という感じです。記憶力が笑っ てしまうほど悪い私としては1年どころか一月後の自分も他人のようなもので、 そいつがどう使ってもカプセルの中身は現在の自分が責任を持ってやろうとい うような発想です。 At Fri, 3 Mar 2000 14:48:53 +0900, 中村暁史 Nakamura Akifumi wrote: > 用途によります。この一言。 と言われると返す言葉がありませんが。確かにそれは正しい... -- 荻野 充 (おぎの みつる) ... 「萩(はぎ)」にあらず 名古屋大学消費生活協同組合