2007年09月27日

これはどうなんだろう

  
あるソースを見ていて、うーん、これはどうなんだろうって思った。
それは、とても似たデータベースのテーブルがあり、それをアクセスするメソッドがあるのだが、これがひとつメソッドで実装されている。
そのメソッド内部では、目的別にprivateメソッドを呼び分けている。
使う側は、同じメソッドを呼ぶわけだが、内部では、その引数によって、処理が分岐している。

たしかに、共通部分が多いため、コードの一部は共有しているのだが、どうも、可読性がわるいというか、メンテナンス性が悪いというか。
まあ、汎用的といえば汎用的なんだけど、

呼ぶ側は、どっちの処理をしてほしいかは、明らかなのだから、メソッドを別にしても良いと思う。

それで、似た部分を一つにはできなくなるわけだけれど、無理やり一つにしても、あまりメリットが見えない。





この記事へのコメント
もしかしたら、テンプレートメソッドパターンで解決できるかもしれませんね。
Posted by siokoshou at 2007年09月28日 20:13
siokoshou さん
そうですね。
delegateと匿名メソッドというのでも、できると思います。
ただ、ここではそこまで書きませんでしたが、どうも、たまたま同じだったというコードに対しての共通化のように感じたのです。
となると、共通化する意味があるのかなと。
まあ、「たまたま」なのか、本質的に同じコードなのかの、見極めってのも難しいのですが。
Posted by Gushwell at 2007年09月30日 08:52
 

この記事へのトラックバックURL