2009-06-29 10 views
1

は、私は私が新しいシステムの開発を開始するたびにキャッチ質問を得ましたそれをリポジトリに格納し、それをWebサービスのリソースとして表示します。顧客に関連するクラスを考える複数の表現

、我々は持っているでしょう(さて、私は本当のためにこれらの名前を使用することはありません):システムのロジックを実行するために使用されたエンティティを表す

  • CustomerEntity、。
  • CustomerRepositoryEntityは、それが格納されるテーブル行を表します。
  • XMLノード 'customer'を表すCustomerXMLEntity。

私は3つのエンティティを持ち、すべての顧客の属性は各クラスにあるようです。私はそこに方法がないのか、あるいは単に「顧客」と呼ばれる同じエンティティの内部でこれらの3つのクラスを統合するパターンがあるのだろうかと思っていました。

このように、「顧客」の新しい表現を作成する必要があるたびに(たとえば、Json要素として表現したい場合など)、新しいクラスを作成する必要はありません。私はそれが非常に特別な問題であることを知っていますが、私が今やっていることよりも容易ではない(そして見栄えが良い)のだろうかと思っていました。

答えて

1

は、プロキシクラスを作成します...あなたが別のアプリケーションで同じ言語を使っていると仮定すると、バックエンドクラス。

バックエンドクラスはデータの近くで実行され、プロキシにデータを提供するためだけに存在します。

プロキシは任意のクライアント上で実行され、初期化パラメータとしてバックエンドエンドポイントの場所をとります。プロキシオブジェクトでget/setが呼び出されると、検証およびビジネスルールが処理され、リクエストをバックエンドクラスに渡します。バックエンドクラスは、データの永続化に関する実装の詳細を処理します。

データの永続性とビジネスルールの2つの抽象レイヤーがあります。

>>>>> Nathan