コードの複製を回避することを考えていると、新しいシステムの開発を開始するたびに私を捕らえる質問がありました。
私が顧客を持っているシステムがあり、それをリポジトリにCRUDして、Webサービスのリソースとして表示する必要があるとします。
顧客に関連するクラスについて考えると、次のようになります(わかりました、これらの名前を実際に使用することはありません)。
- CustomerEntity、システムのロジックを実行するために使用されるエンティティを表します。
- CustomerRepositoryEntity、それが格納されるテーブル行を表します。
- CustomerXMLEntity、XMLノード'customer'を表します。
私には3つのエンティティがあり、すべての顧客の属性は各クラスにあるようです。単に「顧客」と呼ばれる、同じエンティティ内にこれら3つのクラスを統合する方法やパターンがないのではないかと思いました。
このように、「Customer」の新しい表現を作成する必要があるたびに(たとえば、Json要素として表現したい場合)、そのための新しいクラスを作成する必要はありません。私はそれが非常に特別な問題であることを知っています、しかし私はそれが私が今している方法より簡単である(そして見栄えが良い)ことができないかどうかと思っていました。