2011-06-22 8 views
0

G'day、 件名の検索を試みましたが、少なくともまだ何も見つかりませんでした。ドメインオブジェクトのデータマッパーを解決する最も一般的な解決策は何ですか?

私はインターフェイスIEntityを実装する3つのドメインオブジェクトを持っています。 IEntityのCreate、Update、Delete操作を行う汎用データマッパーレイヤーを構築したいと思います。問題は、それぞれの具体的なエンティティが独自のテーブルに保存されているため、3つの具体的なマッパーが必要になるようです。 しかし、クライアントは具体的なオブジェクトについて何も知りません - IEntityのabstrationについてのみ知っています。そして明らかに私は、具体的なオブジェクトがマッパーについて何かを知ることを望んでいません。

だから、クライアントが適切なタイプのマッパーを取得する方法があるようです。サービスロケータパターンは、そのような場合に使用されますか?この目標を達成する

public IEntityDataMapper GetMapper(IEntity entity) 

いくつかの他の方法:のような

何か?私のドメインモデルのサインが最初にやや間違っているのは間違いありませんか?

私が達成しようとしているものの例:すべてのエンティティの更新背後 (クライアントコード)

IEntityMapper mapper; 
IEntity abstractEntity; 

mapper.Update(abstractEntity); 

ロジックは非常に異なる場合があります。

答えて

0

私はあなたが探しているものを正確に理解していませんが、Automapperの場合のように聞こえます。

http://automapper.codeplex.com/

P.S.私はあなたが.Netを使用していると仮定します...しかし、私はあなたが決して指定しなかったと思います...

+0

感謝を私は見てみましょう! – DSY

+0

私は投稿を編集しました。私が達成しようとしているものの例を追加しました。 – DSY

0

私はあなたがしたいことについては本当に明確ではありません - >しかし、あなたはORMの概念に精通しています例NHibernate、これらのエントリーをリレーショナルデータベースにマップしようとしていますか? あなたは、単純なNHibernateのセッションを持つもののような抽象化を持つことができます。

IEntity someEntity = new Customer("John", "Doe"); 
session.Save(someEntity); 

は、データベースにエンティティをマッピングすることを提供...

関連する問題