Perlについての質問箱 32箱目
■ このスレッドは過去ログ倉庫に格納されています
0200180
2007/08/23(木) 14:10:04>>189
B,Cが既存モジュール、DがB,Cが共通して使っている親クラス、
Aがmainを書いた人が書いたカスタムモジュールということにしておいてください。
>合成(has-a、use-a)も考えるよう勧められてるよ。
合成というのは継承機構に頼らず必要なメソッドを手動でA上にディスパッチして
使うということでしょうか?
駱駝本も黒豹本も持ってない・・・
>>190
重複メソッドについてはA上に別名で定義し直すっていうのが現実的な対応でしょうね
あと、内部のメソッド呼び出しが重複する場合は、サブルーチン呼び出しに書き換えるか、
それが出来ない場合は、やはりA上に同名のメソッドを定義して、適切なクラスへ
誘導する必要があると思いました。ばかばかしい事ですが・・・
sub A::_p { $meth = caller().'::_p'; $_[0]->$meth }
>>191
なるほど、next::methodでメソッドが重複するクラスへ誘導するわけですか。
ひとつ勉強になりました。
問題点があるとすれば重複すると分かってからnext::methodを書き込まなければ
いけない点ですね。
■ このスレッドは過去ログ倉庫に格納されています