2007年07月11日

必要な情報は親から貰うんじゃなくて子供から貰え

   Clip to Evernote   このエントリーをはてなブックマークに追加      
このタイトルは何を言いたいのかというと、

ある処理をするのに必要な情報は、それを呼び出す親プログラムから引数などで渡してもらう、ってのが普通のやり方だと思います。

でも、発想を逆転してあげることで、とても設計がすっきるとする場合があります。
引数で渡して貰うんじゃなくて、サブクラスから情報を貰うようにするわけです。
要は、Template Method を上手く活用するってこと。

特に、受け取りたいデータが沢山ある場合は、引数で受け渡すことにすると、呼び出す側の負担が増えるし、コードも読みにくくなります。

virtualなメソッドを定義し、必要な情報をサブクラスから貰うようにすれば、呼び出す側のコードがすっきりするし、責任範囲が明確になります。


もっとも、どんな場合でも使えるっていうわけじゃないけどね。
  

Posted by gushwell at 20:56Comments(2)TrackBack(0)