DTO DAO POCO BO

27

实际上,我对这些术语以及它们之间的关系感到困惑。我读了一些有关它们的东西,但我并不理解工作流程。

DTO - 数据传输对象 - 用于传输值的对象
BO - 业务对象 - 包含在领域模型中的对象。用于进行业务逻辑处理
POCO - 不知道是什么,我在维基百科上读到了一个定义,但没有理解任何东西
DAO - 数据访问对象 - 用于映射数据库表的对象?

是否有人可以为我解决这个问题?


15
有史以来最好的标题。 :) - Stefano Borini
2个回答

39
  • DTO: 数据传输对象,用于在松耦合服务之间传输数据。
  • POCO: 普通的CLR对象,不使用任何属性或必需的继承来充当DAO/DTO。
  • BO: 业务对象,包含业务逻辑,用于您解决方案的业务逻辑部分。
  • DAO: 数据访问对象,用于从数据库中传输数据。

因此,常规的工作流程是从服务请求数据,将其作为DTO发送到您的应用程序,然后将其转换为BO进行操作,并将其作为DTO发送回或在将其转换为DAO存储在数据库中。

您使用不同的对象来分离3种类型之间的关注点,一个BO不需要知道它是使用数据库还是服务进行持久化。


3
说得好。简洁而有效。 - Kevin Swiber
我唯一想知道的是,如果您的 BO 逻辑需要加载数据,该怎么办?它如何访问 DAO? - pihentagy
@pihentagy 这就是 dal 的作用。 - nawfal
只是作为一个补充:你可以将DAO视为BO和数据库之间的DTO。 - dee zg

3

基于时间线的脚手架:

  • Batch => 存储过程 => "普通旧Clr对象" => npmagenda

  • Socket => ODBC => "数据访问对象" => NoSQL

  • CSV => XML => "数据传输对象" => JSON

  • FTP => CGI => "业务对象" => AJAX

参考资料


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接