我有一個基本的域對象,就像人或活動或事件,由數據庫中的單個表示。不過,我也有更復雜的這些對象的版本,像PersonCampaign或PersonEvent,甚至CampaignEvent,理論上可以擴展其中一個基礎對象。基於數據映射器的多態域對象
但是,由於許多原因,這變得很複雜,因爲PHP不支持多重繼承(例如PersonEvent擴展Person或Event)。另外還因爲一些域對象實際上是具有不同屬性和功能的工廠對象(例如,事件實際上由諸如電子郵件,電話,傳真等類型的事件分類)。
我能看到的最簡單的解決方案是根據從數據訪問層返回的數據來改變對象的實際性質。
有沒有人有更好的方式來處理這個問題的任何建議?或者,創建統一的域對象是否正確,這些對象可以根據數據訪問層當前可用的內容來更改屬性和行爲?