之前自己写项目都是Axios一把梭哈,拿到JSON直接解析到组件变量里面。
后来觉得这样可能造成各种不可控因素,然后在学习Vue时了解到有个概念叫可控组件,先拿到JSON先暂存,再赋值。
再后来工作中使用Angular了,发现在架构设计阶段,存在很多DTO类接口。现在写一篇笔记,概括一下企业级开发的逻辑。
看图:DTO(Data Transfer Object)数据传输对象
DTO(Data Transfer Object)数据传输对象,这个传输通常指的前后端之间的传输。
DTO是一个比较特殊的对象,他有两种存在形式:
1.在后端,他的存在形式是C#对象,通常在后端不需要关心怎么从json转成C#对象的,这个都是由一些成熟的框架帮你完成,比如公司在用的abp VNext
2.在前端,他的存在形式通常是js里面的对象(也可以简单理解成json),也就是通过ajax请求的那个数据体
这也是为什么把他画成横跨两层的原因。
关于其他概念的名词解释 参考如下引文:
这里可能会遇到个问题,现在微服务盛行,服务和服务之间调用的传输对象能叫DTO吗?
我的理解是看情况
DTO本身的一个隐含的意义是要能够完整的表达一个业务模块的输出
如果服务和服务之间相对独立,那就可以叫DTO
如果服务和服务之间不独立,每个都不是一个完整的业务模块,拆开可能仅仅是因为计算复杂度或者性能的问题,那这就不能够叫做DTO,只能是BO
链接:https://juejin.cn/post/6844904046097072141
ABP(3)-使用Dto-官方教程扫盲贴之Dto的使用(详细解说) - 百度文库https://wenku.baidu.com/view/7ce6e79dc47da26925c52cc58bd63186bceb9215.html结合ABP来理解DTO的实际用处。