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

Shindo shindo @ atsystem.jp
2007年 1月 19日 (金) 11:16:11 JST


桑田 様

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

>はじめまして。桑田です。
>
>PHP云々というよりオブジェクト指向の問題ですね。
はい。そうですね。^^;
ただ、限定的とはいえPHP4の言語仕様にオブジェクト指向が含まれています
ので、便利に使える限りは使いたいと思います。

>parentを呼ぶ時点で、呼び先のメソッドの内容は知っておく必要
>がありますよね?
そのメソッドの外部仕様のみ知っていれば良いのではないでしょうか。
クラス外からメソッドを呼び出す時に知っていれば良いことと同じで十分だと思
います。

>スーパーマーケットの店員が独自に処理を行ないたければ、parent
>を呼ばずに処理を書けば良いだけです。
はい。そうなのですが、処理の99%が八百屋クラスと同じだとしたら、八百屋
クラスの店員メソッドを使いたいと思いませんか。
そうでなければ、同じソースをコピーペーストして2箇所に持つことになります。
八百屋クラスの店員メソッドでバグを見つけたら、スーパーマーケットクラスの
店員メソッドも直さなければならなくなります。
親メソッドの拡張であれば、親を治せば子も直ります。

>コードの再利用という事を考えると、八百屋もスーパーマーケット
>も同じ事をする場合、この例だと八百屋にのみメソッドを用意して
>おけば、スーパーマーケットでもそのメソッドを呼ぶだけで同じ処
>理が出来ますよね?
>メソッドをオーバーライドする、という時点で、コードの再利用を
>放棄する事になると思っています。
だとすると、オーバーライトと言う言語仕様は何の為に在るのでしょう。


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



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