如果没有 VO 和 PO 的区别,那么数据库表结构的所有字段就一览无余地展示到了前端,给后台安全带来很大的隐患,并且无法在网络传输中剥离冗余信息提高了用户的带宽成本
8. 实例分析
以一个实例来探讨下 POJO 的使用。假设我们有一个面试系统,数据库中存储了很多面试题,通过 web 和 API 提供服务。可能会做如下的设计:1)数据表:表中的面试题包括编号、题目、选项、答案、创建时间、修改时间;2)PO:包括题目、选项、答案、创建时间、修改时间;3)VO:题目、选项、答案、上一题URL、下一题URL;4)DTO:编号、题目、选项、答案、上一题编号、下一题编号;5)DAO:数据库增删改查方法;6)BO:业务基本操作。可以看到,进行 POJO 划分后,我们得到了一个设计良好的架构,各层数据对象的修改完全可以控制在有限的范围内。