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

时间:2009-05-04 20:34:46

标签: language-agnostic architecture

考虑以下的常见分层架构:

  • UI
  • 服务/应用/控制器
  • Persistancy

服务和UI层之间的类型应该是什么?

服务层中方法的返回类型应该是基元吗?它们可以是来自域层的对象吗?

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

  • 它应该是forumID(基元)的一些集合 - 我们需要向服务层发出更多的调用,以便呈现论坛的主题和描述(使用其ID)。
  • 它应该是一些论坛对象的集合(来自域层) - 我们最终可能会有一个可以直接访问域层的UI(听起来对我很糟糕)
  • 它应该是特制对象的一些集合(仅代表论坛的主题,描述和ID)吗? (听起来像是太多的代码)

1 个答案:

答案 0 :(得分:0)

您可以使用数据传输对象模式:

http://www.martinfowler.com/eaaCatalog/dataTransferObject.html

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