1

コードの複製を回避することを考えていると、新しいシステムの開発を開始するたびに私を捕らえる質問がありました。

私が顧客を持っているシステムがあり、それをリポジトリにCRUDして、Webサービスのリソースとして表示する必要があるとします。

顧客に関連するクラスについて考えると、次のようになります(わかりました、これらの名前を実際に使用することはありません)。

  • CustomerEntity、システムのロジックを実行するために使用されるエンティティを表します。
  • CustomerRepositoryEntity、それが格納されるテーブル行を表します。
  • CustomerXMLEntity、XMLノード'customer'を表します。

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

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

4

1 に答える 1

1

異なるアプリケーションで同じ言語を使用していると仮定すると...

プロキシ クラスとバックエンド クラスを構築します。

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

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

2 つの抽象化レイヤーが必要です。1 つはデータの永続性用で、もう 1 つはビジネス ルール用です。

>>>>>  Nathan
于 2009-06-29T19:42:21.730 に答える