2010年06月17日

サービスクラスの単位に悩む。

s2jdbcでは、エンティティ単位にサービスを作るようになっている。

これは、そのエンティティの処理を1つにまとめられて見通しのよい方法だと思う。

でも、アプリケーションの規模がだんだん大きくなると、ちょっと問題が見えてくる。

同じエンティティの処理でも、ジョインする必要のあるエンティティが違ってきたりなどと、

微妙に処理が違うことが出てくる。

上記の場合は、あらかじめ関連エンティティを全てジョインしておくか、

メソッドを分けるかで対応ができるかもしれないが、どちらもあまり好ましくない。

1本化するために、不要なものまでジョインするのは、リソースの無駄な気もするし、

メソッド分割は、ちょっとだけ違う処理のメソッドが乱立して収集がつかなくなりそう。

そんなことを思ってた時に、ある書籍のCOLUMNでこの問題が取り上げられていた。

その内容では、共通化はある程度諦めて、機能単位や、ユースケース単位でサービスを作る方が
部分部分での見通しは良くなると言っている。

なるほど。サービスを物理的に分けるのか。クラスが増えるが、著者の経験上そっちのが良かったのだろう。

スーパークラスと、リストテーブルのようなジョインされるだけのものは共通化にして、

あとは、アクション毎にパッケージ分割してるのを想像すると、今後のためには良い気がしてきた。

システムの仕組みの根本の部分だから、やるなら早めがいいよなぁ。取り組んでみるか。



posted by hana at 11:31| Comment(0) | TrackBack(0) | seasar関連 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

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