什么是数据传输对象 (DTO)?

2023-12-02

在MVC中模型类是DTO吗?如果不是,有什么区别,我们都需要吗?


数据传输对象是一种用于封装数据并将其从应用程序的一个子系统发送到另一个子系统的对象。

N 层应用程序中的服务层最常使用 DTO 在其自身和 UI 层之间传输数据。这里的主要好处是它减少了分布式应用程序中需要通过线路发送的数据量。他们还在 MVC 模式中制作了很棒的模型。

DTO 的另一个用途是封装方法调用的参数。如果方法采用四个或五个以上参数,这可能很有用。

使用 DTO 模式时,您还可以使用 DTO 汇编器。汇编程序用于从域对象创建 DTO,反之亦然。

从域对象到 DTO 的转换以及再次转换可能是一个成本高昂的过程。如果您不创建分布式应用程序,您可能不会从该模式中看到任何巨大的好处,因为马丁·福勒在这里解释.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是数据传输对象 (DTO)? 的相关文章

  • ListItem 附加自定义值

    我在asp net中使用dropdownlist 它有代表下拉列表项目的ListItem集合 每个ListItem只有两个字段来保存数据 Value和Text字段 但这些还不够 我想保存更多数据对于每个项目 假设附加字段中有 Text1 和
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是
  • 将带有星号的注册表项传递给测试路径

    我想通过以下方式运行此注册表路径Test Path在 PowerShell 中 但它包含一个星号 该星号在注册表中有效 但在 Windows 路径中无效 问题是 当我通过它时 Test Path将星号视为通配符 因此这需要非常非常长的时间
  • 如何从 Magento One Page Checkout 获取发布数据?

    为了在 Magento Checkout 中添加客户评论字段 我在相应的模板文件中添加了一个文本字段 并使用如下观察器将评论添加到订单中 comment strip tags Mage app gt getRequest gt getPar
  • 如何在 iOS 中注册自定义文件类型

    我目前正在创建一个应用程序 我想让用户在其中备份他们的文件 plist m4a 我压缩文件并将扩展名更改为自定义扩展名 专门针对我的应用程序 例如 MyBackup 然后 用户可以通过电子邮件或 iTunes 文件共享进行导出 我已经阅读过
  • 多边形内的 SQL 地理点在 STIntersect 上不返回 true(但使用 Geometry 返回 true)

    我不想仅仅为了在 STIntersect 中返回 true 而将地理数据转换为几何图形 下面是 SQL 中的代码 DECLARE point GEOGRAPHY GEOGRAPHY Point 1 1 4326 DECLARE polygo
  • javax.persistence.Table.indexes()[Ljavax/persistence/Index 中的 NoSuchMethodError

    我有一个 Play Framework 应用程序 并且我was使用 Hibernate 4 2 5 Final 通过 Maven 依赖项管理器检索 我决定升级到 Hibernate 4 3 0 Final 成功重新编译我的应用程序并运行它
  • 如何更改 aptana studio 的背景颜色?

    如何将 Aptana IDE 或整个主题 的黑色背景更改为其他背景 例如蓝色 正如 gyozo 在评论中提到的 对于蓝色主题 请使用 窗口 gt 首选项 gt Aptana Studio gt 主题 并选择 Eclipse 主题
  • 如何获得 JavaScript 阶乘程序的循环来显示所使用的工作?

    你好 我面临着用 JavaScript 编写一个程序的挑战 尽管我对它不太了解 但它要求用户输入一个数字 然后计算该数字的阶乘 我使用了已经提出的问题并设法使计算正常工作 但无法获得所需的输出 我必须在以下输出中获取它 而不使用任何花哨的库
  • 用javascript调用外部网页(跨域)

    我正在尝试使用以下网络服务来验证提要这个问题 https stackoverflow com questions 11996430 check if a url is a valid feed 但浏览器不允许我向另一台服务器发送 ajax
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str
  • 在Python中停止ThreadPool中的进程

    我一直在尝试为控制某些硬件的库编写一个交互式包装器 用于 ipython 有些调用对 IO 的影响很大 因此并行执行任务是有意义的 使用 ThreadPool 几乎 效果很好 from multiprocessing pool import
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string
  • Biopython 可以执行 Seq.find() 来解释歧义代码吗

    我希望能够在 Seq 对象中搜索考虑歧义代码的子序列 Seq 对象 例如 以下内容应该是正确的 from Bio Seq import Seq from Bio Alphabet IUPAC import IUPACAmbiguousDNA
  • 使用 VBA 通过 Access 导航网页/操作 IE

    你好 StackOverflow 社区 我有一个关于使用 Access VBA 操作 IE 的问题 本质上 我正在尝试编写代码 使用 IE 打开特定网页 在该页面中搜索特定链接 目标链接的名称将取决于用户的情况 通过以编程方式单击该链接导航
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少
  • 在 Google 地图上绘制线条/路径

    我很长一段时间都在忙于寻找如何在 HelloMapView 中的地图上的两个 GPS 点之间画一条线 但没有运气 谁能告诉我该怎么做 假设我使用扩展 MapView 的 HelloMapView 我需要使用叠加层吗 如果是这样 我是否必须重
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域

随机推荐

  • 如何在OSGI框架中在运行时动态加载Java类?

    我们正在项目中执行 POC 其中我们发送基于 SOAP 的请求并相应地从 Web 服务获取 SOAP 响应 我们的目标是在我们的应用程序中利用 Spring 框架提供的 Web 服务模板 客户端 API 根据我们的架构 我们创建一个符合 O
  • 即使安装了 contrib,sift = cv2.xfeatures2d.SIFT_create() 也不起作用

    所以我尝试使用 sift cv2 xfeatures2d SIFT create 它出现了这个错误 cv2 error OpenCV 3 4 3 C projects opencv python opencv contrib modules
  • 在 numpy 中将 3 个一维数组连接在一起

    我将离开 MatLab 转而使用 numpy 总体来说一切顺利 但我正在做噩梦 要找到一种很好的 Pythonic 方法来完成在 MatLab 中可以完成的操作 A 1 0 2 0 3 0 4 0 Column vector B 5 0 6
  • 无法启动 Visual Studio 分析器

    我有 VS 2010 Ultimate 我创建了空的 win32 控制台解决方案 并将其 cpp 文件替换为http pastebin com EQJKJK6T我尝试执行 CPU 采样分析 但由于某种原因我收到以下消息 留言框 无法启动 e
  • 如何避免旋转时重新创建 Activity,同时尊重方向锁定?

    背景 每次旋转设备时 Android 都会销毁当前 Activity 并使用新配置重新创建它 避免重新创建活动的一个简单方法是添加 配置更改 清单中的值 我记得是 屏幕大小 和 方向 问题 如果您使用 configChanges 属性 应用
  • 如何将网页下载到 .NET 中的流中

    我知道这应该是一个基本问题 但我遇到了困难 我希望转到 URL URI 下载结果字符串 就好像我打开了一个文件一样 然后将其取出到 String 变量中 我一直在使用 IO Stream 和 Net httpxxx 但还没有设法让元素以正确
  • Matlab 绘图 - 字体 Zapf Dingbats 将不会渲染

    我有一个 Matlab 程序 需要在图中包含一个平面图标 Zapf Dingbats 40 每次我运行它时 它都会回退到系统字体 我做错了什么吗 这不是确切的代码 但说明了问题 title char 40 fontname ZapfDing
  • UIView animateWithDuration 立即返回

    我正在尝试为嵌入 UIView 中的标签设置动画 这是代码 void displayText NSString text label setText text UIView animateWithDuration 5 0 delay 0 0
  • 带有通配符参数的存储过程

    我有一张桌子 create table user userId varchar 8 not null userName varchar 8 not null insert into user select NAME1 name1 union
  • Highcharts 3.08 具有多个父系列的深入分析

    我正在使用 Highcharts 制作第一个向下钻取图表 我刚刚安装了 3 09 版本 其中内置了向下钻取支持 钻取图表将成为已包含多个图表的页面的一部分 所有图表都有 3 个系列 州 地区 子地区 数据动态填充 问题是钻取模块似乎不支持多
  • 通过代码将stdout重定向到C中的文件

    我正在输出到标准输出 如何通过代码将其重定向到新文件 当我们运行程序时 我们可以像这样重定向 sample gt test txt 在执行示例程序本身时如何做到这一点 C语言编程 您可能想使用freopen 参考示例 include
  • 如何在 LINQ to SQL 中使用WITH(NOLOCK)?

    我们可以像这样使用 SQL SELECT FROM student WITH NOLOCK 如何在不使用 LINQ to SQL 的情况下实现此目的TransactionScope LINQ to SQL 没有任何执行此操作的机制 但您可以
  • 获得焦点和失去焦点事件

    我的 java swing 表单中有 4 个 JTextfield 问题是我需要通过 java 代码而不是使用 Tab 键将焦点从一个 JTextField 移动到另一个 JTextField 如果JTextField2获得了Focus 则
  • 为什么 libmp3lame 在 MP3 的开头添加零?

    我有一个未压缩的 wav 文件 我将其转换为 96k MP3 文件 ffmpeg exe i song wav vn b a 96000 ac 2 ar 48000 acodec libmp3lame y song mp3 输入文件有 63
  • HTML 5 Canvas 似乎重绘了删除的部分

    我创建了以下代码jsfiddle 目标是在单击后从画布上删除一个框 实际发生的情况是 网格被清除并完全重新绘制 删除的框位于原来的位置 只有当所有给定的对象都被删除时 网格才会显示为空 我很困惑 我究竟做错了什么 jQuery functi
  • 测试NG。需要在所有测试之前运行特定方法并在所有测试之后运行特定测试

    使用Selenium TestNG Maven 我想使用 OWASP ZAP 自动测试漏洞 为此 我需要在所有测试之前启动 ZAProxyScanner 在所有测试之前执行方法 public void initZap zapScanner
  • GridView排序和分页

    我想在我的页面上显示简单的 gridview 并为其提供排序和分页功能 单独排序和分页可以正常工作 但两者结合起来就不行了 例如 如果我对第一列进行降序排序 然后转到第二页 那么我会看到第二页数据采用默认排序 升序 我严重依赖这个问题的代码
  • 传递给 onCreate() 方法的 SQLiteDatabase 对象会发生什么?

    几天前 我遇到了一个错误 该错误是由于调用db close 在 的里面onCreate method 还有一些人遇到了类似的问题 这里解决了 无法创建 Android SQLite 数据库 PRAGMA 错误 我现在真的很感兴趣为什么会发生
  • 如何使用 Storyboard ID 显示各种视图控制器(每个视图控制器都有其各自的导航控制器)

    我正在开发我的第一个应用程序 这就是我想要实现的目标 将会有一个包含几个不同选项的菜单 为简单起见 假设它由带有 IBAction 出口的 UIButtons 组成 并且具有随时拉出菜单的功能 每个菜单按钮在按下时应显示不同的导航控制器的内
  • 什么是数据传输对象 (DTO)?

    在MVC中模型类是DTO吗 如果不是 有什么区别 我们都需要吗 数据传输对象是一种用于封装数据并将其从应用程序的一个子系统发送到另一个子系统的对象 N 层应用程序中的服务层最常使用 DTO 在其自身和 UI 层之间传输数据 这里的主要好处是