2011-03-14 8 views
1

、私は5つの主要層を持っていますどの層に永続性層からドメインオブジェクトを取得する責任を割り当てるべきですか?ドメインレイヤーに新しいパーティションを作成することにしましたが、コントローラーレイヤーによってドメインオブジェクトを作成する方法があいまいになりました。OOD:永続層からオブジェクトを作成する必要はありますか?で</p> <ul> <li>UI</li> <li>CONTROLLER</li> <li>DOMAIN(ビジネスルール)</li> <li>PERSISTENCE</li> <li>MYSQL(デシベル)</li> </ul> <p>:私のソフトウェアで

私は永続的な状態からドメインオブジェクトを作成することで、ドメインオブジェクトを作成するための洗練されたソリューションを探しています。

答えて

0

コンテキスト/ユースケースの知識を持つレイヤーから永続レイヤーからオブジェクトを取得する必要があります。

つまり、ユースケースを実装したレイヤーでは、データベースからオブジェクトを取得(または保存)できるリポジトリ(またはその他のパーシスタンスレイヤオブジェクト)を呼び出す必要があります。 IMHO、これは唯一の正しいことです。それは、あなたのトランザクションの「生涯」の知識も持っている「コンテキスト」(より大きな画像を知るレイヤー)の知識を持つレイヤーです。そのレイヤーは、トランザクション管理にも責任があります。

+0

あなたの答えはフレデリックに感謝します、私はあなたが完全に正しいと思います!だから私は、ドメイン層とコントローラ(それはユースケースを管理する)からリポジトリのクラスを呼び出してモデルオブジェクトを取得して保存するパッケージリポジトリを作成することができます...そうですか? – ech0s7r

0

さて、あなたの永続化層の準備ができている場合は、DBスキーマからクラスを作成します。利用できるいくつかのツールがありますが、

そのうちの一つは、NetBeansの永続性プラグインです。

ドメインモデル[DBスキーマから作成されたクラス]と実際のDBには、任意のORMツールを使用できます。

+0

永続化レイヤーには、create(クラス typeClass、String oid)のようなファクトリメソッドを持つクラスがあります。このクラスは、idがoidのストレージから作成するクラスの型をとります。私はコントローラからこのメソッドにアクセスしますが、直接アクセスすることができます。 – ech0s7r

関連する問題