我试图让我的领域层尽可能地“纯粹”,而不涉及持久性或其他基础设施问题。但是,有时我的域层需要使用 RDBMS 或其他外部依赖项的服务,我不知道如何处理它。
例如,我的应用程序中的每个域对象都实现了一个 IValidatable 接口,客户端调用该接口以获取阻止对象被持久化的损坏规则列表。在少数情况下,上述验证例程涉及调用 DAO 类以检查特定记录的存在。我们没有使用 ORM;相反,我们使用使用数据访问对象模式构建的持久层。我应该围绕这个数据库访问创建一个服务/包装类并让我的域对象与之协作吗?添加这种间接级别是否可以接受,还是我仍在污染我的域对象?