DTO DAO POCO BO

时间:2009-07-29 22:17:02

标签: architecture domain-driven-design design-patterns

实际上我对这些术语以及它们如何相互关联感到非常困惑。阅读关于他们每个人的事情,但我不了解工作流程。

DTO - 数据传输对象 - 传输值的对象
BO业务对象 - 域模型中的对象。用于制作业务逻辑的对象 POCO - 不知道,我已经阅读了维基的定义,但没有理解任何内容 DAO - 数据访问对象 - 映射数据库表的对象?

有人可以为我带些光吗?

2 个答案:

答案 0 :(得分:33)

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

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

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

答案 1 :(得分:3)

基于时间轴的脚手架:

  • Batch =>存储过程=> “普通老clr对象”=> npmagenda

  • Socket => ODBC => “数据访问对象”=> NoSQL的

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

  • FTP => CGI => “业务对象”=> AJAX

<强>参考