5

オブジェクトにデータを設定するファクトリ クラスがあります。オブジェクトからの保存を実装したいのですが、オブジェクトに db のものを入力したくありません。クラスを作成する Factory にデータも保存させるのはばかげていますか?

つまり、オブジェクトの .Save() メソッドで Factory.Save(myObject); を呼び出します。

4

3 に答える 3

6

ファクトリ クラスは、新しいオブジェクトの作成に役立つ作成パターンです。

持続オブジェクトを扱うさまざまなパターンがあり、そのうちの 1 つがデータ マッパー http://martinfowler.com/eaaCatalog/dataMapper.htmlです。

これは、Repository http://martinfowler.com/eaaCatalog/repository.htmlとの推測でよく使用されます。

これらのパターンを使用して、ドメイン/ビジネス オブジェクトからデータベースを抽象化し、アプリケーション内からそれらにアクセスして、オブジェクトのクエリと保存を行うことができます。

したがって、データ マッパー/リポジトリは、永続性の両方の側面 (データベースからの入力とデータベースへの保存) を担当します。

于 2008-10-10T01:24:57.233 に答える
3

クラス内のデータベース関連が気になる場合、O/R マッパーの使用を検討したことはありますか?

これにより、データベースの要素がコードから完全に除外され、ドメイン オブジェクトがクリーンになります。

多分NHibernateまたはActive Recordを見てください。

于 2008-10-10T01:26:14.670 に答える
2

いいえ、まったくばかげているわけではありません。実際、それは誰もが行うべき方法です。ビジネス オブジェクトには永続化ロジックを含めないでください。

ところで、C# 3.0 を使用している場合は、Factory クラスを気にすることさえないかもしれません。拡張メソッドを作成するだけです。そうすれば、持続性コードをビジネス オブジェクトから分離したまま、myObject.Save() を呼び出すことができます。

于 2008-10-10T01:21:56.303 に答える