我有一个基本的域对象,就像人或活动或事件,由数据库中的单个表示。不过,我也有更复杂的这些对象的版本,像PersonCampaign或PersonEvent,甚至CampaignEvent,理论上可以扩展其中一个基础对象。基于数据映射器的多态域对象
但是,由于许多原因,这变得很复杂,因为PHP不支持多重继承(例如PersonEvent扩展Person或Event)。另外还因为一些域对象实际上是具有不同属性和功能的工厂对象(例如,事件实际上由诸如电子邮件,电话,传真等类型的事件分类)。
我能看到的最简单的解决方案是根据从数据访问层返回的数据来改变对象的实际性质。
有没有人有更好的方式来处理这个问题的任何建议?或者,创建统一的域对象是否正确,这些对象可以根据数据访问层当前可用的内容来更改属性和行为?