采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
学到这里,知道了整体的设计思想,一个购物车只能存放一种商品,通过商品和购物车的一个抽象对象CartProductVo来实现对购物车中商品的管理,然后再通过CartVo实现对购物车的管理。
但是我有一个想法:一个用户正常情况下创建一个购物车,这个购物车可以存放多种商品,而不是添加一种商品就去创建一个购物车,即直接在Cart这个pojo中创建一个List,用户存放多种商品。
你这样的话也可以,不过代码会显得可读性较差,容易冗余,首先CartVO就是一个购物车VO对象,里面就封装了一个List,而POJO(plain ordinary java object) 简单无规则java对象,是纯的传统意义的java对象。就是说在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的persisent object完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。我的理解就是最基本的Java Bean,只有属性字段及setter和getter方法,所以出于设计规范的原则,所以我建议还是封装一个VO或者BO对象来处理,免得发生不可以预知的错误。
我来解答,以我的理解。按你说的Cart这个pojo中创建一个list,存放多种商品,这块就涉及到表的设计问题,因为刚开始设计表的时候,就没有设计外键,设外键如果很多张表关联,对于表的操作会比较困难。你这样就相当于一对多的关系,Cart是一,product是多。就违背了表的设计。Vo就是弥补这个的作用。pojo的属性体现的是一张表最原始的字段。购物车表中的字段不足以支撑页面上数据要求,而且现实需求是一个购物车包含多个商品。所以,后台需要对购物车封装,封装成一个购物车商品的Vo类。
我想問一下 Pojo層 和 VO 層的分別是不是在於 pojo 內的屬性就是和數據庫上的資料一樣, vo層就是想顯示那些屬性給用戶看?..
对的,可以这么理解
pojo中的属性和数据库中的字段一一对应,而vo是根据前台需求重新组装的一个对象
謝謝謝謝
放List可能不太好。一个购物车,然后里面添加订单项的对象可能好一点,一个购物车对应多个订单项
@Saving 赞美!
登录后可查看更多问答,登录/注册
前后端分离,数据库接口设计,架构设计,功能开发,上线运维
10.2k 10
1.9k 22
1.4k 21
2.2k 21
2.0k 18