Domain driven design 如何正确实施反腐败层

Domain driven design 如何正确实施反腐败层,domain-driven-design,Domain Driven Design,我从DDD哲学开始,我想实现与我们这里的遗留系统的集成。在我在互联网上的研究中,我发现了一些文章和样本,但我必须承认:很难理解如何正确地进行集成 在提出这个问题之前,我在这里进行了搜索,但是搜索结果对我来说没有用处,所以我想知道是否可以发送或向我展示ACL的实现示例 我这里有以下项目: 遗留系统 遗留数据库(我需要访问) 将使用DDD方法创建的新应用程序 最初的想法是通过NHibernate访问该数据库,只创建一些所需的映射类、域实体并实现业务规则。根据埃里克·埃文斯(Eric Evans)

我从DDD哲学开始,我想实现与我们这里的遗留系统的集成。在我在互联网上的研究中,我发现了一些文章和样本,但我必须承认:很难理解如何正确地进行集成

在提出这个问题之前,我在这里进行了搜索,但是搜索结果对我来说没有用处,所以我想知道是否可以发送或向我展示ACL的实现示例

我这里有以下项目:

  • 遗留系统
  • 遗留数据库(我需要访问)
  • 将使用DDD方法创建的新应用程序
最初的想法是通过NHibernate访问该数据库,只创建一些所需的映射类、域实体并实现业务规则。根据埃里克·埃文斯(Eric Evans)的说法,这种策略被称为[泡沫背景][1]。我认为这个策略可以解决我的问题,但我需要一些样本来以正确的方式做到这一点


有人能帮我吗?

ACL是一种模式,而不仅仅是一段代码。在您描述的内容中,您并没有说您对遗留系统有很强的依赖性,还是您只想在当前系统中构建一些独立的代码?有了这一点,您可以决定您的ACL将仅仅是一个数据库服务,还是它将包含一些对遗留系统逻辑的包装

您放入ALC的实际部分在很大程度上取决于您的实现。 对于您的要求,有一个通用模式:


您可以在中找到更多信息。

您是否阅读过Eric Evans的书“域驱动设计”,其中有一节介绍了acl。Acl实际上是在DDD中应用适配器模式的一个例子。我从个人经验中得到的一个建议是,不要使用NHibernate访问遗留数据库,因为这可能不值得。取而代之的是,将重点放在用新应用程序可以通过ACL访问的服务封装遗留系统上。