首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >表示层应该使用从服务层返回的域对象吗?

表示层应该使用从服务层返回的域对象吗?
EN

Software Engineering用户
提问于 2017-02-28 21:17:07
回答 1查看 899关注 0票数 4

例如,如果有一个调用CountryService类的控制器,而CountryService类使用一个Countries类,那么CountryService是否应该将CountriesClass返回给控制器?或者服务是否应该有另一种DTO类型,它包含有关国家的信息,但仅由表示层使用,并将其交给控制器?

EN

回答 1

Software Engineering用户

发布于 2017-02-28 22:12:45

这取决于您的应用程序架构。例如:

  • 在最初的MVC中,控制器和视图都可以访问模型对象。
  • MVP中,控制器充当中间人(使模型位于远程服务器上),因此在本例中,您希望使用一些DTO对象。

但它也取决于对象的语义:

  • 您的国家对象能否被克隆(本地或通过服务器/反序列化),因为它们只包含固定状态的副本(例如国家名称、官方语言、货币)?
  • 或者,您的国家是一个独特的对象,它的状态可能被应用程序之外的事件更新(例如,基于每秒钟估计人口增长的模型,或者仅仅因为有几个客户端可以同时更新对象)?

在后一种情况下,您绝对不会操纵模型对象:您需要使用DTO或代理对象并使用一些身份映射器。但这将立即使问题变得更加复杂,从而引发乐观的和悲观的并发处理问题。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/343192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档