奇特なブログ

「殊勝に値する行いや心掛け」を意味する、奇特な人になる為のブログです

リファクタリングで「オーバーロード」を使う?

滝打ち4日目。

いや〜、現場でリファクタをしようと思って色々考えていたんですけどねぇ。
以下の様なメソッドなんですけど。


function a()
{
return ?;
}
で、このメソッドを「$class_obj->a();」みたく呼んでいるわけです。

今回、何をしたいかというと、
このメソッドa内の処理を「分岐によって、元々の処理を行うか、新しい処理を行うか」に分けたいのです。
だったら、以下の様に書けば良いのではないかと。


function a($flg = false)
{
if (true === $flg)
{
// 新しく追加した処理
}
else
{
// 元々やっていた処理
return ?;
}
}

$class_obj->a(true);

ただ、実はこれだけだとダメなんだよなぁと思っていたら・・・これってオーバーロードだから・・・イケる!と、
ただいま、大変に「己の才能」に感動している所ですw
ソースが目の前に無いので、頭の中だけで想像してますけど、
うん、やっぱりイケるんじゃないかなぁ。
まぁ、もしイケなかったとしても、
オーバーロードって、新人以前の時に学んだけど、使い道が無くてどうしたもんかと思っていた」
ので、少なくとも「使い道の一つ」は知ることが出来そうです。
オーバー「ライド」なら、継承でしょっちゅう使うんですけどねぇ。
といっておきつつ、「正確にはオーバーロードではないだろ」には同意です。
いや、上記の呼び出し側の例が、「引数の数が可変に見える」じゃないですか。
その辺を見て、そう感じました。

さぁ、レッツ実験であります!