データベース内の 1 つのテーブルで表される Person、Campaign、Event などの基本的なドメイン オブジェクトがあります。ただし、PersonCampaign や PersonEvent、さらには基本オブジェクトの 1 つを理論的に拡張できる CampaignEvent など、これらのオブジェクトのより複雑なバージョンもあります。
ただし、PHP は多重継承をサポートしていないため (たとえば、PersonEvent は Person または Event を拡張します)、これは複雑になります。また、一部のドメイン オブジェクトは、実際にはさまざまなプロパティと機能を持つファクトリ オブジェクトです (たとえば、Event は実際には、電子メール、通話、FAX などのイベントの種類によってサブクラス化されます)。
私が見ることができる最も簡単な解決策は、データ アクセス層から返されるデータに基づいて、オブジェクトの実際の性質を変更することです。
これを処理するためのより良い方法について何か提案はありますか? それとも、データ アクセス レイヤーから現在利用できるものに基づいて、プロパティと動作を変更できる統合ドメイン オブジェクトを作成するのが正しいのでしょうか?