From: Hideto ISHIBASHI Date: 2000-03-11T15:03:13+09:00 Subject: [ruby-list:21324] Re: 引数コピーとオブジェクト指向 石橋秀仁です。 > ただただしです。 > >> name = 'John' > >> john = Person.new (name) > >> name.sub! (/.*/, 'Paul') > > > >これも別に問題は無いですよね。結婚した場合など、当然のように名前がかわっ > >たりしますし。 > > たぶん例が悪いんだと思うけど、この例に限ればすごく問題があると思うので > すが。これを問題ないという人がけっこう多くて驚きというか。この場合の最 > 大の問題は、nameの(中身)の変更をjohn自身が知り得ないということです。 > Personという名前を与えられたクラスのインスタンスが、自分が表現する人の > 名前が変わったことを知らなくていいはずがない。 「変更を通知」ということで、この問題はObserverパターンの検討対象ですね。 > #人物をidentifyするのはnameじゃなくてPersonなんだから。 これけっこう重要だと思います。オブジェクトの値に意味があるのか、 オブジェクトの唯一性が重要なのか。名前も読みも同じ人間がいてもいい。 しかし、整数オブジェクトの'1'と'1'が別のオブジェクトである必要はない。 OOA/Dでいうと、オブジェクトの「属性」になれるクラスか、なれないクラスか。 -- Hideto "rubyholic" ISHIBASHI