基础结构解释

  • UI-表现层-与控制器打交道(UI向Controller 传递数据时使用DTO(数据传输对象))
  • Service-应用服务层
  • Domain 领域对象
  • DTO 数据传输对象,一般只包含基础的Get,Set功能,也会包含一些数据验证,如必填项,大小,自定义规则等。

一个完整的业务是通过领域实体(对象)domain建立的,而DTO是根据UI的需求来设计的。

  1. 比如:Customer领域对象可能会包含一些诸如FirstName, LastName, Email, Address等信息。但如果UI上不打算显示Address的信息,那么CustomerDTO中也无需包含这个 Address的数据。

  2. 比如:User表设计字段如下:Id,UserName,Password,RegisterTime。注册时,那这个接口的参数应该只有UserName,Password,因为RegisterTime是后台赋值的,Id是数据库自动生成的。即设计一个RegisterDto,只包含UserName,Password二个字段,作为注册接口的参数。不然,那二个参数对于开发前端的人来说是无意义的,因为传递也没有效果。所以不应该暴露给前端使用。

以上即领域对象来实现业务,DTO只注重数据。

UI->Controller(通过 DTO完成数据传输,表单验证)->Service(操作Domain,完成业务服务)。
DTO->Domain,在C#中可使用一些类库,快速将二个类相互转换。良好的设计什么要使用DTO,集成 AutoMapper

最新文章

  1. T-SQL---多值模糊查询的处理
  2. Vijos P1769 网络的关键边
  3. 加jdk语句
  4. ASP.NET 之 网页快照 (DrawToBitmap)
  5. 页面导出生成pdf,使用wkhtmltopdf第三方工具
  6. mysql+ssh整合样例,附源代码下载
  7. 12C dbca silent
  8. 201521123089《Java程序设计》第14周学习总结
  9. 【python系列】--Python变量和数据类型
  10. Mysql数据的增删改查
  11. Vue -- 基础语法和使用
  12. Mysql:is not allowed to connect to this MySQL server
  13. MysqL_select for update锁详解
  14. postfix 指定用户限制指定域名收发
  15. Codeforces 1072 - A/B/C/D - (Done)
  16. react项目搭建
  17. Session帮助类
  18. Beta版本发布报告
  19. scala 日期格式转换
  20. 1001 A+B Format (20 分)

热门文章

  1. android performance
  2. jQuery第3天
  3. SDUT-3362_村村通公路
  4. 《DL/T 1476-2015 电力安全工器具预防性试验规程》中的样品名称及试验项目
  5. 日志 5.27 关于AssetBundle
  6. 阿里云POLARDB如何助力轻松筹打造5亿用户信赖的大病筹款平台?
  7. 从零学React Native之01创建第一个程序
  8. Streamy障碍一:大批量条目
  9. oracle函数 RPAD(c1,n[,c2])
  10. es6 默认参数、rest参数、扩展运算符