我有一组业务/域类(对于日历)将在内部公共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