【问题标题】:Domain Driven Design - data centric module inside larger DDD system领域驱动设计 - 大型 DDD 系统内的以数据为中心的模块
【发布时间】:2009-12-17 02:02:46
【问题描述】:

我们正在开发基于 DDD 的系统。对于该系统中的特定模块(发布者),我们将从其他对象接收数据并对其执行转换,然后写入数据文件。

正在开发的 DDD 设计有许多自定义的数据集合类...所有这些对象都只包含数据行,但它们具有不同的类和属性名称。是否有处理这种情况的好策略或模式? IE。一种将相同逻辑应用于所有这些对象的方法。

更多细节:例如,我们可能有一个包含 Data123Row 对象集合的 DataType123 类。然后是包含 Data456Row 对象集合的类型 Data456 类。假设有 15 个这样的不同对象。由于 DDD 的想法,它们具有基于域名的名称,但它们实际上或多或少都是表格数据,即行和列。我们正在尝试创建一个通用服务,可以对它们一视同仁,即使它们在技术上是不同的类。

【问题讨论】:

    标签: c# architecture domain-driven-design


    【解决方案1】:

    据推测,Service (DDD) 和 Adapter (GoF) 模式似乎是一个不错的起点。

    由于数据转换不是以域为中心的活动,因此请通过 Services 调用它们(进而使用 Adapters 来转换数据)

    【讨论】:

      【解决方案2】:

      在我看来,您需要一个 DataType 基类和一个 DataRow 基类,您的转换算法可以使用它们。

      然后使用Factory 模式来构造您的对象。

      如果您使用 C#,则可以使用反射以通用方式访问所有属性。

      或者,如果您的转换算法需要访问特定的属性名称,那么您的工厂可以处理 DataType123、DataRow123 和 TransformationAlgorithm123 的构造。

      【讨论】:

        【解决方案3】:

        你的问题有点不清楚。 DDD 是关于存储库模式的全部内容,用于持久化您的值对象。您是否正在寻找其他模式来处理特定的事情?不清楚您要在这里完成什么。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-10
          • 2016-09-26
          • 1970-01-01
          • 1970-01-01
          • 2018-07-03
          • 1970-01-01
          • 2021-11-25
          相关资源
          最近更新 更多