夫天地者,万物之逆旅;光阴者,百代之过客。而浮生若梦,为欢几何?
架构师成长笔记:你应该知道的DAO、DTO这些对象术语

先来吐个槽

笔者作为一个代码极端份者,对乐观代码、惰性代码深恶痛绝。在多年的从业经历中看到过、听到过、经历过太多的失败案例和惨痛教育,其归结原因大致可分为 架构不严谨和开发不规范所导致。 在多数系统架构中存在框架滥用、对象定义混乱,职责不清晰等问题。随着产品长期迭代,代码变得不可维护(没有人能改动了!) ,系统性能急剧下降在所难免。笔者今天就系统架构中对每类对象的应用场景进行一个简单梳理。

PO

PO(Persistant Object) 持久对象
通常为数据库模型(表)和对象(类)之间的映射,即一张表对应一个PO对象,PO中不应存在对数据库的操作。笔者建议:PO中也不应该存在模型以外的属性和方法。

BO

BO(business object) 业务对象
通常为一个封装的复杂对象,由PO组成,调用DAO完成业务处理。

VO

VO(View object) 视图对象
通常用于展示层,封装好客户端所需要的对象,为客户端使用。VO和DTO做的工作差不多,个人理解:VO 典型的使用场景是 .net MVC ,DTO 是Web Api。

DO

DO(Domain object) 领域对象
DDD领域驱动设计中的概念。

DAO

DAO(Date Access Object) 数据访问对象
主要负责持久层的操作,用于访问数据库,为业务层提供数据接口。DAO中包含了各种数据库的操作方法,提供数据库的CRUD操作。

DTO

DTO (Data Transfer Object)数据传输对象
通常用于提供数据接口,如web api 、web service等。粗暴通俗的讲就是假如PO具有50个属性,但是我们的数据接口只需提供10个属性,这个时候可以使用DTO。另外客户端和服务端之间的数据传输也应该使用DTO。

作者:暗夜余晖

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

0

支持

0

反对

posted @2017-10-6  拜读(2069)

评论列表

评论内容:



喜欢请打赏

支付宝 微信

请放心支付