[PHP-users 31287] Re: オーバーライドでのメソッドの拡張方法

Shindo shindo @ atsystem.jp
2007年 1月 19日 (金) 13:05:06 JST


桑田 様

はじめまして。進藤です。

>細かい処理までは知らなくても良いとしても、IN/OUTは知る必要があり
>ますよね?
>その中には、そのメソッドの中で発生する可能性があるエラーも含まれ
>ると思っています。
はい。その通りです。
私の中では「外部仕様」とはそれらを含んだものだと思っていました。

>>>スーパーマーケットの店員が独自に処理を行ないたければ、parent
>>>を呼ばずに処理を書けば良いだけです。
>>はい。そうなのですが、処理の99%が八百屋クラスと同じだとしたら、八百屋
>>クラスの店員メソッドを使いたいと思いませんか。
>
>思いますが、同じメソッド名である必要はないのではないでしょうか?
>
># 無理にオーバーライドしようとしているように見えるんですけど。
既存のコードを拡張する為に、今までのクラスの名前を変えて中身はそのままで
使いまわそうと考えたため同じメソッド名になったわけです。
でも、十分に懲りましたので今後はこの手法は使わないつもりです。

># 「処理内容を考えるとこのメソッド名じゃないと駄目」という場合
>  に同じメソッド名にしてしまうとオーバーライドされてしまうので、
>  その救済措置でparentがあると考えた方が楽かも。
その通りですね。

>>>メソッドをオーバーライドする、という時点で、コードの再利用を
>>>放棄する事になると思っています。
>>だとすると、オーバーライトと言う言語仕様は何の為に在るのでしょう。
>
>・継承元のメソッドが気に食わないので処理を上書きする
>・処理の流れを考え、メソッド名を同じ名前にする事で一貫性と可読性
>  を持たせる
その通りですね。
処理の上書きだけで済ませればよいものを、再利用などというみみっちい事をす
るからいけないのですよね。(^_^;)


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 進藤寿則@アットシステム   _/_/
 e-mail shindo@atsystem.jp     _/



PHP-users メーリングリストの案内