Language agnostic 服务(应用程序/控制器)和UI层之间的数据类型

Language agnostic 服务(应用程序/控制器)和UI层之间的数据类型,language-agnostic,architecture,Language Agnostic,Architecture,考虑以下常见的分层体系结构: UI服务/应用程序/控制器域持久性 服务层和UI层之间的类型应该是什么 服务层中方法的返回类型应该是原语吗?它们可以是域层中的对象吗? 动机: 我们正在建立一个论坛系统。在服务层的某个地方应该有一个类似“getForums”的方法。我想知道它的返回类型应该是什么- 如果是一些forumID(原语)的集合,我们需要向服务层发出更多的调用,以便呈现论坛的主题和描述(使用其ID)。 如果它是一些论坛对象的集合(来自域层),我们最终可能会得到一个可以直接访问域层的UI(

考虑以下常见的分层体系结构:

  • UI
  • 服务/应用程序/控制器
  • 持久性
      服务层和UI层之间的类型应该是什么

      服务层中方法的返回类型应该是原语吗?它们可以是域层中的对象吗?

      动机: 我们正在建立一个论坛系统。在服务层的某个地方应该有一个类似“getForums”的方法。我想知道它的返回类型应该是什么-

      • 如果是一些forumID(原语)的集合,我们需要向服务层发出更多的调用,以便呈现论坛的主题和描述(使用其ID)。
      • 如果它是一些论坛对象的集合(来自域层),我们最终可能会得到一个可以直接访问域层的UI(听起来真的很糟糕)
      • 它是否应该是一些特别制作的对象的集合(仅代表论坛的主题、描述和ID)?(听起来好像代码太多而一无所获)
      您可以使用数据传输对象模式:


      这将在UI和服务层之间实现,并且可以根据UI所需的数据视图进行定制。

      谢谢。这实际上就是我们最终所做的。结果证明是个不错的选择:)