場景: 對WCF服務使用分層方法:業務服務將域/ DTO對象返回給客戶端。仍在開發中,我們可以打破合同。設計服務對象的方法是特定的還是通用的?
人物具有名和姓。會員對象具有稅號和出生日期。這是因爲,在我們的域名中,只有會員獲得稅號和出生日期。當從使用這種結構的服務獲取數據時,清楚哪些屬性適用。
現在,我們介紹另一種具有用戶使用的服務 - 讓員工說。在此用法中,人物對象需要附加屬性稅號文件號和出生日期。
什麼是繼續進行的最佳方式?
1)將Person對象視爲通用Person幷包含所有屬性。這將人員映射到真實世界的人,不一定基於用法。這意味着返回人員的服務將包括稅號和出生日期,即使這些服務可能不相關。
2)將其他字段複製到Employee中。這使Person保持原樣,並且以重複爲代價保持特定的服務調用。
3)在我們爲Member和Employee繼承的名爲PersonWithDOBTFN的對象之間創建另一個。這消除了重複,保持特定的東西,但引入了複雜性。
我確實在尋找設計這些對象的最佳實踐方法。