2013-05-31 18 views
7

ドメイン、DAOおよびサービスレイヤーオブジェクト内にあるメソッドのタイプ(ビジネスロジックの意味で)の違いを知る必要があります。ドメイン、DAOおよびサービスレイヤー

たとえば、顧客データを作成、編集、削除するための小さなWebアプリケーションを構築する場合、ドメインレイヤオブジェクト内でわかっている限り、Get/Set Customersオブジェクトのプロパティ(getName、 getDOB、setAddress、setPhoneなど)。

ここで私が習得しようとしているのは、DAOとサービスレイヤーのオブジェクトにどのようなメソッドを配置するかです。

あなたの時間と労力を事前に感謝します。

答えて

8

(休止状態や春特有のものではない)一般的にいえば:

DAO層は、データストアにあなたのドメイン層を保存するために、クエリと更新が含まれています(通常はリレーショナルDBしかしである必要はありません)。インターフェイスを使用して、実際のデータストアからDAOを抽象化します。頻繁に起こることはありませんが、データストアを変更したり、ロジックをテストするためにモックを使用したりすることがあります。

サービスレイヤーは、通常、ビジネスロジックを含み、ドメインレイヤーとDAOの間のやりとりを調整します。これは、「保存」、「getById」などのメソッドを持ちます。 "verifyBalance"や "calculateTotalMileage"のように、特定のドメインに適した方法があれば、それがあります。

+0

DAOレイヤのメソッドの例を教えてください。私があなたから理解している限り、サービスレイヤオブジェクトには、verifyBalance、calculateTotalMileageなどのメソッドがあります。すべての計算メソッドはすべて – MChan

+0

です@MChan - DAOは、ほとんどの場合、データの更新、作成、削除、および取得に関係しています。データベース。非オブジェクトデータストアの場合、永続化されたデータ(RDBの行と列)からオブジェクトへのマッピング、オブジェクトから永続化データへのマッピングも行います。メソッドnanmesはあなたが望むものであればどんなものでもかまいませんが、通常は "save"、 "delete"、 "query"、 "update"のようなものです。サービス層は、計算方法を持つ必要はありません。これらの方法は、ビジネスが決定または実行する必要があるものです。 – lreeder

6

DAO:JPA、JDBC、SQLまたはnoSQL呼び出しを「ラッピングする」、またはDBシステムにアクセスするためのものを「ラッパー」する方法。

ドメイン:ビジネスロジックコールは、単一のタイプのエンティティ(ドメインオブジェクト)に関連付けられています。

サービス:ビジネスロジックコールは、エンティティタイプのグループまたは同じタイプの複数のエンティティのグループに関連付けられます。

は(私は英語についてはよく分からない、申し訳ありません.......)

それは意味: サービス層を、ドメイン層よりも「大きな」であることが多いのフロントエンドに近く、頻繁に呼び出し、いくつかのドメインオブジェクトを使用します。

ドメインオブジェクトは、(彼らはD.O.と呼ばれている理由です)ドメインの一部のため、ほとんどのものをカプセル化し

DAOは時々、時には必要な、技術だけかなっではありません。 実際のドメインオブジェクトを使用すると、データベースシステムへのアクセスを隠す、または特別なDB機能などを追加するために、しばしば「リポジトリ」が使用されます。

フロントエンド - >サービス方法1 - > d.o.タイプXのd、d。 BタイプXのリスト

+0

私がHibernateを使用している場合、DAOオブジェクトメソッドの使用は何ですか?データアクセスで私がどのように役立つのか – MChan

関連する問題