[#21157] あったらうれしいメソッド to_n, to_n!, to_s! — ogino@...

荻野です。あったらうれしいメソッドということで書いてみます。

16 messages 2000/03/03

[#21159] メソッドの入り口 — ogino@...

荻野です。もうひとつご指導ください。

93 messages 2000/03/03
[#21170] Re: メソッドの入り口 — Shin-ichiro Hara <sinara@...> 2000/03/03

原です。

[#21243] Re: メソッドの入り口 — keiju@... (石塚圭樹) 2000/03/07

けいじゅ@日本ラショナルソフトウェアです.

[#21247] Re: メソッドの入り口 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 2000/03/07

[#21267] 引数コピーとオブジェクト指向 (Re: メソッドの入り口) — Hideto ISHIBASHI <s34204@...> 2000/03/08

石橋秀仁です。

[#21272] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 ) — 中村暁史 Nakamura Akifumi <BXQ04723@...> 2000/03/08

[#21276] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 ) — nobu.nakada@... 2000/03/09

なかだです。

[#21279] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 ) — ogino@... 2000/03/09

oop未満の世界観の荻野です。

[#21282] Re: 引数コピーとオブジェクト指向 — Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp> 2000/03/09

越水です。

[#21285] Re: 引数コピーとオブジェクト指向 — ogino@... 2000/03/10

荻野です。

[#21293] Re: 引数コピーとオブジェクト指向 — Matsuo Hisanori <hisanori@...> 2000/03/10

松尾です。

[#21297] Re: 引数コピーとオブジェクト指向 — ogino@... 2000/03/10

荻野です。

[#21302] Re: 引数コピーとオブジェクト指向 — 土岐 仁謙 <toki@...> 2000/03/10

土岐です。

[#21371] Re: 引数コピーとオブジェクト指向 — Matsuo Hisanori <hisanori@...> 2000/03/13

松尾です。

[#21374] Re: 引数コピーとオブジェクト指向 — TADA Tadashi <sho@...> 2000/03/13

ただただしです。

[#21365] Re: 引数コピーとオブジェクト指向 — Matsuo Hisanori <hisanori@...> 2000/03/13

松尾です。

[#21280] raise non-Exception object — Kenichi Komiya <kom@...3.rim.or.jp>

24 messages 2000/03/09
[#21283] Re: raise non-Exception object — nobu.nakada@... 2000/03/09

なかだです。

[#21315] Re: raise non-Exception object — Kenichi Komiya <kom@...3.rim.or.jp> 2000/03/11

[#21342] Re: raise non-Exception object — nobu.nakada@... 2000/03/12

なかだです。

[#21384] ruby 1.4.4 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

35 messages 2000/03/13

[#21442] 配列内のソート — Takayuki Tanaka <tanaka@...>

こんにちは Tanです。

16 messages 2000/03/15

[#21583] ruby for Web — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

27 messages 2000/03/22
[#21584] Re: ruby for Web — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/03/22

なひです.

[#21649] net-1.1.10 — TAKAHASHI Masayoshi <maki@...>

高橋征義です。net/http 使いたおし中。

17 messages 2000/03/27

[#21669] new version of mod_ruby & eRuby — Shugo Maeda <shugo@...>

前田です。

14 messages 2000/03/28

[ruby-list:21370] Re: 引数コピーとオブジェクト指向

From: TADA Tadashi <sho@...>
Date: 2000-03-13 04:39:24 UTC
List: ruby-list #21370
ただただしです。

 カプセル化の話と、オブジェクトの粒度の話がごっちゃになってきてい
る気がします……。

Matsuo Hisanori <hisanori@sitc.toshiba.co.jp> wrote:
>Stringで名前、Integerで年齢、Sectionで所属部門を表わす企業人Personクラ
>スがあるとします。Sectionは部門名や部門長、組織内における自部門の位置
>などを持つクラスとします。
(snip)
>  # 選択肢3
>  def initialize(name,age,section)
>    @name = name.dup
>    @age = age
>    @section = section
>  end

 強いてあげるならこれ(選択肢3)です。

>3でしょうか。何だか格好が悪いですね? 何故nameだけdupする羽目になっちゃ
>うんでしょうか。変ですね?

 変ですか? Integerには破壊的メソッドがないから(ないよね……?)、
ageをdupする必要はない。これは自明。

 で、sectionに関して言えば、私ならsectionをStringで表現すること
などせず、ちゃんとSectionクラスを作って名前の変更を管理させます
(Sectionの名前は内部でdupしたStringを使います)。つまり、「Personの
名前」と「所属部門」を同じ粒度のStringで管理しようとする設計に無理
がある。

># 3を格好が悪いと感じて頂けないと、議論が難しくなりますね。

 sectionをStringで実装するのが格好悪いっす(笑)。そのあとの例につ
いても同様に言えます。

 この例を続けると、「内容を変更可能なStringの是非」みたいな話にな
っちゃうから、あんまし意味がないような気がするんですけどねぇ……。
Javaのjava.lang.Stringは変更できないからシンプルでよかったかも。あ
と、Javaではアクセスさせたくないメソッドがあるオブジェクトを他のオ
ブジェクトに見せるとき、機能を制限したinterfaceでラップするなんて
技も使いますね(Rubyでは意味がないけど)。

#Rubyで書くならどうするかって話もあってややこしい。Rubyではどうし
#ても手を抜いてしまうから(笑)。

class Section
   ...
end

class Person
   def initialize( name, section )
      @name = name.dup
      @section = section   # ここ
   end
end

……なんて例で「ここ」の部分にSectionオブジェクトが渡ってきた時に
dupするか? って話にしたらどうです? これは誰もdupせぇとは言わないと
思うんですが。

----
□Don't □ ただただし@神奈川県相模原市 <sho@spc.gr.jp>
□Think,□ カブ   http://www.bekkoame.ne.jp/~sho/cub/
□Buuuy.□ こま犬 http://www.bekkoame.ne.jp/~sho/komainu/

In This Thread