2012-05-03 6 views
0

私はいくつかのパターンを学んでいます。仕事/リポジトリの統一... Web上にいくつかの例がありますが、誰も複数のデータベースに接続していません。多くのデータベースで使用されている作業の一致

私のアプリケーションでは、ほとんどの場合、データベース(たとえばユーザー)と別のオブジェクトを別のものから取得する必要があります。どのように使用できますか? (私はこの主題の初心者なので明示的な例は必須です)

ありがとう! UMLのコレクションを持っており、あなたの特定のケースの作品のユニティの企業ソフトウェア のための最も一般的なデザインパターン以上の説明は仕事に特に適している、私はあなたとhttp://martinfowler.com/eaaCatalog/index.html を訪問する興味がある人々に助言する一般的な基準として、

+0

レスポンスのチャンスを増やすために追加できるものはありますか?質問は明確ではありませんか? –

答えて

0

データマッパーおよびアイデンティティマップと一緒に。私は他の2つのパターンも習得しなければならない仕事の100%統一を理解すると思います。

あなたの質問に答えるために、私は仕事の団結を作り、それをレジストリに保存することができると思うので、アプリケーション全体で利用できます。データベースとの通信に中央ゲートウェイを確保する必要があるため、単一性が必要です。あなたの団結の中には、アイデンティティマップがあります。アイデンティティマップは、あなたのモデルを表すメモリ内の価値のあるオブジェクトのコレクションであり、すべてのアプリケーションの操作中にオブジェクトの状態を維持します。統合は、モデル上でCRUD操作を実行するためにサービスレイヤーによって使用され、これらの変更をコミットします。 さらに多くのデータベースで作業するには、アイデンティティマップに格納されているオブジェクトへの名前空間によるアクセスを活用する必要があると思います。名前空間の選択肢:作業の統一またはアイデンティティマップ。この決定は、アプリケーションとユースケースによって異なります。読取りと書込みの間の責任を分けたり、異機種データ・ソースを統合しようとすると、異なるDBに接続する必要があります。 DBオブジェクトを単一の作業メソッドに挿入する方法もあります。この場合、アプリケーションはどのデータベースを使用するかを100%制御します。

レポジトリ私の知る限りでは、モデルのストレージに抽象化するのに役立ちます。異機種のデータソースを扱う場合には、アプリケーションに柔軟性を提供する必要があります。したがって、私はそれが仕事とデータマッパーの層の統一とは全く違うと思います。

関連する問題