From: Akinori MUSHA Date: 2008-12-02T20:31:11+09:00 Subject: [ruby-dev:37246] Re: RSS::Maker.create(version) --pgp-sign-Multipart_Tue_Dec__2_20:36:49_2008-1 Content-Type: text/plain; charset=ISO-2022-JP At Mon, 1 Dec 2008 21:48:34 +0900, Kouhei Sutou wrote: > In <86skp8vcvv.knu@iDaemons.org> > "[ruby-dev:37238] Re: RSS::Maker.create(version)" on Mon, 1 Dec 2008 11:32:31 +0900, > "Akinori MUSHA" wrote: (snip) > >  私は RSS::Maker(version) という案には賛成です。 > > もう1つ思いついたのですが、これではどうでしょうか? > > maker = RSS::Maker[version].new > > or > > maker = RSS::MAKERS[version].new > > こっちの方が変なことをしていないように見える気がします。 確かにハッシュだと変なことをしていないように見えますが、むしろ 将来高度なこと、たとえば version 文字列に表記揺れを認めるとか、 追加パラメータを取り、(クラスでなく) new/make メソッドを持つ オブジェクトを生成して返すとか、モジュールを動的ロード化する とか、そういうことを実現する際の足かせになる懸念があります。 もちろん .[]() や Hash#default_proc で対応は可能でしょうが、 それこそ変なことをしていると言われそうです。 従って、ハッシュ(に見えるもの)を露出させるよりもメソッドとして 提供する方がインターフェースとしては好ましいと私は思います。 -- Akinori MUSHA / http://akinori.org/ --pgp-sign-Multipart_Tue_Dec__2_20:36:49_2008-1 Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEABECAAYFAkk1HdEACgkQkgvvx5/Z4e5UTACffaoSzShXERYX08kPd8WDigSw xHwAoNYD1K1PsXibE8vQQUjUm9bDn7TA =v+ZB -----END PGP SIGNATURE----- --pgp-sign-Multipart_Tue_Dec__2_20:36:49_2008-1--