From: gotoken@... (GOTO Kentaro) Date: 1999-11-24T01:38:21+09:00 Subject: [ruby-list:18861] Re: initializer polymorphism? ごとけんです In message "[ruby-list:18858] Re: initializer polymorphism?" on 99/11/23, Takeyuki Watadani writes: >ところで、やっぱり私があげた方法(*つきの仮引数を使って >initialize内部で条件分岐する)にしてもGOTOさんの方法にしても >ちょっと複雑になるというか可読性が落ちるというか、ムツカシク >なりますよね? 皆様どうしているのでしょうか? 僕がよくやるのは、ユニバーサルでちょっと複雑な initialize を 用意して、そのあと、new を呼ぶユーティリティ的な生成用のメソッ ドを複数作るといった感じです。 class Foo def Foo.type1(*args); new(:TYPE1, *args); end def Foo.type2(*args); new(:TYPE2, *args); end .... def initialize(argtype, *args) case argtype when :TYPE1 ... when :TYPE2 ... else ... end end end >#もしかしてそんな程度でムツカシイなんていってちゃいけない? >#それとも正しくRuby的なプログラミングをすればそもそも >#initializerが複数欲しいなんて要求自体出てこない? 少なくとも僕はそんなことないと思います。割と自然な要求でしょう。 -- gotoken