domain-driven-design - 如何正确实现反腐败层

标签 domain-driven-design

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

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

我这里有这些元素:

  • 遗留系统
  • 遗留数据库(我需要访问)
  • 将使用 DDD 方法创建的新应用程序

  • 最初的想法是通过 NHibernate 访问该数据库,只创建一些所需的映射类、域实体并实现业务规则。根据 Eric Evans 的说法,这种策略被称为 [Bubble Context][1]。我认为这个策略会解决我的问题,但我需要一些样本来以正确的方式做到这一点。

    有人能帮我吗?

    最佳答案

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

    您放入 ALC 的实际部分在很大程度上取决于您的实现。
    您所要求的内容有一个通用架构:
    enter image description here

    您可以在 Eric Evan's talk 中找到更多信息.

    关于domain-driven-design - 如何正确实现反腐败层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17868217/

    相关文章:

    domain-driven-design - 领域驱动设计中跨界上下文的实体

    c# - 我应该在 DDD 中执行多少实体和值对象的概念?

    c# - 使用 DDD 创建子实体的正确方法

    domain-driven-design - 有没有关于领域驱动设计的好书?

    transactions - 域对象身份重用 vs 新建

    domain-driven-design - 电子邮件通知 - 在域对象或服务中?

    c# - 如何跨同一实体的实例实现实体验证

    .net - 当对找不到的实体发出命令时,适当的 .NET 异常类型是什么?

    domain-driven-design - 发布实体状态变化的最佳实践

    inheritance - DDD : aggregate root specialization