我有一組業務/域類(對於日曆)將在內部公共API中公開。在同一個API中,有直接鏡像底層數據庫結構(NHibernate映射,但不重要)的數據對象。數據對象中的業務邏輯與耦合與DTO(vs.?)
我需要做的是構建這些對象的類型化集合,因此日曆上的每一天都可以包含來自數據庫的一組約會,提醒等等。
一種解決方案是使用來自域模型標記接口「標記」每個數據對象:
public class CalendarAppointment : PersistentEntity, ICalendarObject
但我已經把業務/域模型的東西與我的數據模型。
另一個解決方案是包裝數據模型類如下,並且暴露/使用那些日曆API中:
public class Appointment : CalendarAppointment, ICalendarObject
但是這引入了非常明顯的耦合。
第三種解決方案是使用DTO,但是我需要公開DTO中數據對象中的每個字段......所以在首先創建DTO似乎沒有意義。
這是最好的選擇,還是有更好的選擇?
這是一個.NET 2.0項目,如果這有所作爲。
我應該澄清,我會編輯我的問題。我所說的API將在內部公開 - 計劃是它將用於開發我們的基礎產品,並且還用於擴展基礎產品的功能(這是遺留系統遷移的一部分,其中幾個客戶端具有巨大的與基礎產品的偏差)。我們已經將數據_結構_類(如上所述)從數據層查詢中分離出來,但是這兩件事都必須在API中公開。 – 2009-10-07 18:01:58