gpt4 book ai didi

business-objects - 什么是 DTO 和 BO?有什么不同?

转载 作者:行者123 更新时间:2023-12-03 23:32:57 27 4
gpt4 key购买 nike

我知道 DTO 是一个数据传输对象,而 BO 是一个业务对象。但是,它实际上是什么意思?我什么时候应该选择一个而不是另一个?
从,我理解的DTO只是用来传输数据,没有业务逻辑。这是否意味着 DTO 没有任何方法属性(getter 和 setter)?但是,它仍然具有 BO 的属性。有人可以解释一下吗?谢谢。

最佳答案

DTO 用于在层/层之间传输数据。为此,它不需要任何方法,有时甚至不应该有任何方法——例如,当 DTO 通过 Web 服务公开时。

业务对象是一个聪明的对象,它包含对这个对象执行操作(更改数据)的数据和方法。当您将 BO 暴露给上层时,它可以调用您对象的公共(public)方法。有时你不想要这个,因此你创建了只提供数据但不提供方法的 DTO。

DTO 不必传输所有 BO 数据。当您遵循严格的 DTO 方法时,您将为业务层上公开的每个操作创建特定的 DTO。例如,如果您的对象具有 CreatedBy、ModifiedBy、CreatedDate 等审计数据,并且您正在创建 Update 方法,那么您的传入 DTO(带有更新的对象)不需要具有这些属性,因为上层无法修改它们 - 只有业务逻辑可以.

关于business-objects - 什么是 DTO 和 BO?有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4637124/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com