[Seasar-user:15086] Re: [teeda]クラス・パッケージ構成について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 7月 18日 (金) 00:00:48 JST


小林 (koichik) です.

Date:    Thu, 17 Jul 2008 23:19:02 +0900
From:    "元場 羊二郎(Youjiro Motoba)" <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:15084] [teeda]クラス・パッケージ構成について

> teedaを使った場合の推奨するクラス・パッケージ構成はどのよう
> にすれば宜しいでしょうか?
> Page、Service、Logicをどのような構成にすべきか悩んでます。

以下の記事が参考になると思います.

http://d.hatena.ne.jp/szk-takanori/20070304/1173022251

パッケージ構成についてはこちらも参照してください.

http://s2container.seasar.org/2.4/ja/DIContainer.html#SMARTdeployPackage

> 多分、各クラスが何を意味するか理解できてないことが原因だと思
> うのですが・・・
> 
> ◆Page
> ⇒htmlのid属性をプロパティとするJavaBeans?
> ⇒サブアプリ固有のロジック?

Teeda の Page クラスは画面単位なので,画面固有の
ロジックになります.
ロジックといってもプレゼンテーションに関するものに
限定する場合もあります.

> ◆Action
> ⇒サブアプリ固有のロジック?

Page クラスにはプロパティだけを持たせて,画面固有の
ロジック (initialize, prerender, do〜) を分離したものです.
画面の項目数が非常に多い場合,Page と Action を分離すると
ソースの見通しがよくなりますが,最近はあまり好まれて
いないかも.

> ◆Service
> ⇒???

元々は画面 (プレゼンテーション) から切り離された
ビジネスロジックとかドメインロジックとか業務ロジックとか
呼ばれるものへのエントリポイント (ファサード),あるいは
プレゼンテーションレイヤとドメインレイヤの橋渡しを
担うクラス.

http://capsctrl.que.jp/kdmsnr/wiki/PofEAA/?ServiceLayer

この場合の Service はサブアプリケーション単位に
作られることが多かったのではないかと思います.

最近はエンティティと 1対1 で作成する,エンティティ固有の
ロジックを持つクラスのことを Service と呼ぶようになって
きましたが,これは上の説明とは別物です.

> ◆Logic
> ⇒共通ロジック?

画面 (プレゼンテーション) から切り離された
ビジネスロジックとかドメインロジックとか業務ロジックとか
呼ばれるようなロジック.

> また、PageとActionを分離とか出来たりもするのですが、どんな時
> に分離するのでしょう?
> もしかして、ActionとServiceって必要ないんじゃないの?とも思
> います。

必要かどうかは作成するアプリケーションの複雑さに
依存しますが,必要性を感じないのならシンプルに
始めるのがいいのではないでしょうか.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内