ActionとServiceの責務
という感じみたいですが、ちょっと悩みどころが。
よく1つのテーブルに対する処理に幾つかの関連するテーブルへの処理がぶら下がってること(簡単な例でいえば、「Aテーブルを更新するときに、Bテーブルも更新する」とか)があるんだけどその場合、一連の処理をServiceとして隠蔽してしまうのか、Actionで順次記述した方が良いのかが悩ましい。
昔のAction+DAO(例えば、Struts+JDBC)な構成だと、Actionにしか書くところがないのでActionに書くしかなかったし、Action+Service+DAO(例えば、Struts+Spring+Hibernate)な構成だと、Service(Logic作る人もいるけど)でロジック含めて隠蔽して、「ActionからはServiceのメソッド呼ぶだけで良いよ。」みたいな感じにしてることが多かった。
Action+Service+JdbcManagerの場合はどうすればいいんだろうね。
Serviceに隠蔽するとデータベースへのコードが集約されるのと不適切な方法でのアクセスをコントロールできそうなので、隠蔽するのもいいんだけどそうなるとServiceだけが責務が大きくなりすぎて痛し痒しなところが。
う〜ん悩ましいから、もう少しさわって。