質問

オブジェクトにデータを入力するファクトリクラスがあります。オブジェクトからの保存を実装したいが、dbスタッフでオブジェクトを設定したくない-クラスを作成する私のファクトリがデータも保存するのは愚かですか?

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

役に立ちましたか?

解決

クラス内のデータベースに懸念がある場合-O / Rマッパーの使用を検討しましたか?

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

NHibernate またはアクティブレコード

他のヒント

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

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

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

これらのパターンを使用して、データベースをドメイン/ビジネスオブジェクトから切り離し、アプリケーション内からそれらにアクセスして、オブジェクトを照会および保存できます。

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

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top