代码不规范,亲人两行泪——DTO
代码不规范,亲人两行泪——DTO
啥是DTO
借用别人写的非常好,非常全面的介绍 方便了解DTO
表现层于应用层之间是通过DTO来进行交互的,数据传输对象是没有行为的POCO对象,他的目的是为了对领域对象进行数据封装,实现层与层之间的数据传递。为何不直接将领域对象进行数据传递?因为领域对象更注重领域,DTO更注重数据。由于“富领域模型”的特点,这样会直接将领域对象的行为暴露给表现层。
DTO本身不是业务对象,他是根据UI需求进行设计的。简单来说Model面向业务,我们是通过业务来定义Model的。而DTO是面向UI,通过UI的需求来定义的,通过DTO我们实现了表现层与Model层之间的解耦,表现层不引用Model。如果开发过程中我们的模型变了,而界面没变,我们只需改Model而不需要去改动表现层。
DTO有什么用
DTO 就是为了在客户端和服务器端交换大量的数据,而无需多个细粒度的调用,减少远程调用的数目,避免相关的网络负载,同时提供一种比较优雅的解决方案。
DTO怎么用
1.首先编写一个类用来接收数据库查询或要传的参数字段
//:如下 用来接收数据库查询的数据字段
@Data
@ToString
public class SubscribeDTO {private String startDateTime;private String endDateTime;private String name;private String studentNumber;
}
2.在写一个响应给前端的一个结果集
//如下 响应前端的结果集
@Data
@ToString
@ApiModel(value = "获取预约信息返回数据", description = "获取预约信息返回数据")
public class SubscribeResult {//预约开始时间@ApiModelProperty(value = "预约开始时间", example = "2020-01-04 15:28", notes = "预约开始时间", required = true)private String startDateTime;//预约结束时间@ApiModelProperty(value = "预约结束时间", example = "2020-01-04 16:28", notes = "预约结束时间", required = true)private String endDateTime;//预约人姓名@ApiModelProperty(value = "预约人姓名", example = "张三", notes = "预约人姓名", required = true)private String name;//预约人学号@ApiModelProperty(value = "预约人学号", example = "20200104001", notes = "预约人学号", required = true)private String studentNumber;
}
- 通过这个工具 mapstruct 把 DTO映射给Result
@Mapper(componentModel = "spring")
public interface SubscribeConverter {List<SubscribeResult> toSubscribeDTO(List<SubscribeDTO> subscribeDTO);}
业务层使用
@Overridepublic ApiResult<List<SubscribeResult>> getSubscribeList(ApiParam<?> param) {List<SubscribeDTO> subscribeList = subscribeMapper.findSubscribeList(param.getUuid());return result(subscribeConverter.toSubscribeDTO(subscribeList));}
使用后感
个人觉得在使用时有些麻烦,但是这是一种规范。他帮你省略了一些繁琐的set方法编写也提高了代码安全。 写代码不仅要方便自己也要方便同事。北京代码大队提醒你:“代码不规范,亲人两行泪”
代码不规范,亲人两行泪——DTO相关推荐
- 特斯拉又有新游戏可以玩了 网友:行车打游戏,亲人两行泪
[TechWeb]4月6日,特斯拉在其官方微博上公布车机软件TeslAtari 更新在即,将上线Super Breakout 等新游戏. 特斯拉表示,"TeslAtari 更新在即!在近期将 ...
- 使用git的正确方式,Git操作不规范,代码被吞两行泪
git是开发中必不可少的,其使用虽然简单,但是也是要注意点事项 先commit(本地版本控制),把自己本地修改或者更新的提交到本地库,再pull(下拉更新并且解决冲突等),把远程仓库最新版本拉到本地, ...
- 攻略▍ERP不规范 同事两行泪 企业ERP建设的思考和密钥
作者| 初码张工 编辑|尾草冰淇淋 36大数据获授权发布 最近的很多次对外交流,都聊到了ERP建设的话题,并且无一例外的不那么让人省心,回想我这么多年走过的ERP坑坑路,在这里也写下经验和总结,希望能 ...
- 2021-02-21 代码不规范,运维两行泪 代码规范
代码不规范,运维两行泪 编程江湖中一直盛传着一个段子,那就是要问程序员最讨厌哪 4 件事?那必须是:写注释.写文档.别人不写注释.别人不写文档. 动手写代码前尽量做到心中有数,思考清楚代码框架结构.现 ...
- “编程不规范,同事两行泪!”
[编者按]编程江湖中一直盛传着一个段子,那就是要问程序员最讨厌哪 4 件事?那必须是: 写注释.写文档.别人不写注释.别人不写文档. 更甚者,在<流浪地球>形成刷屏之势之后,仿其而出的&q ...
- Python花呗分析模型温馨提醒:支出不规范,收入两行泪
全世界只有3.14 % 的人关注了 数据与算法之美 春节结束,离开家里混吃混喝的怀抱,我又开始了用花呗.还花呗的无限循环. 花呗给人一种"有钱"的感觉,我不禁思考:像我这种发工资前 ...
- 开会迟到,代码不规范,晚上八点半去健身,跟leader坐电梯自己先出去!某新入行程序员被疯狂吐槽!...
互联网大厂里老人带新人是常事,在这个过程中,由于年龄差距.观念不同.能力差异,很可能会出现误会和矛盾,老人觉得新人不懂事,新人觉得老人太古板. 一个滴滴的程序员在带校招应届生的时候,被对方的种种行为搞 ...
- 因代码不规范,码农枪击4名同事,一人情况危急
作者 | 鱼哥 本文经授权转自鱼哥来说事 据外媒报道,来自美国的一名程序员因同事不写注释,不遵循驼峰命名,括号换行,最主要还天天git push -f 等因素枪击了4名同事,导致一人情况危急. 现在凶 ...
- 开会迟到,代码不规范,新人程序员被疯狂吐槽
本文转载自GitHub技术社区 互联网大厂里老人带新人是常事,在这个过程中,由于年龄差距.观念不同.能力差异,很可能会出现误会和矛盾,老人觉得新人不懂事,新人觉得老人太古板. 一个滴滴的程序员在带校招 ...
- 笑话:工作千万条,抬杠第一条。同事不抬杠,感动两行泪
不知道别人的感受怎样,每次同事遇到问题,让他怎么办,不管多么的明白和正确,结果都是不听.于是吾就改造了一下: 工作千万条,抬杠第一条. 同事不抬杠,感动两行泪.
最新文章
- javascript tab切换类LixTabs最新版
- 美智库发布报告:《美国在人工智能时代的行动蓝图》
- opencv打开raw格式图像
- View工作原理(四)view的layout过程
- Android开发技巧——自定义控件之自定义属性
- SDUT - 2604 Thrall’s Dream(tarjan+拓扑)
- NEFU705(数论+DP)
- Android下强制打开软键盘
- 性能测试--jmeter中的HTTP信息头管理器的使用【8】
- H265分辨率解码概述
- 推荐两款ios端磁力下载工具
- 多多进宝推广团队_多多进宝推广团长玩法指南
- java字符串转日期_在java中如何将一个字符串转换为日期?
- c语言实现定积分运算
- Spring事务管理的总结
- 云堡垒机和软件堡垒机哪个好?区别是什么?
- XenApp6.5产品BUG
- Unity第三人称控制实现方式
- Django 数据库连接使用
- ava查询mysql的数据_【技术综述】AVA-第一个大规模的美学质量评估数据库
热门文章
- 广告数据定量分析:第一章——广告优化中的统计学
- Win 10 专业版重新激活详细操作步骤
- android屏幕测试工具,OLED屏幕纯色测试工具
- 苹果手机语音备忘录在哪_苹果手机的备忘录竟然还有这么多隐藏功能?以前不知道真是可惜了!...
- Node.Js实现最最最简单的登录注册
- 【公众号】微信进入公众号链接自动获取授权登陆
- 神经网络机器翻译的实现
- 坐标旋转次序 欧拉角定义 左乘 右乘
- Office Word 之画肘形箭头
- python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图