问题出现场景
- 在项目进行到购物车功能的时候,需要考虑到购物车功能都有哪些模块
- 首先是以我这个案例中的界面
提取模型选择
- 这里是考虑把这个案例中的购物车分为5个部分,其中商品详情的方框是一个部分,以及右下角的4个部分
- 这里解释商品详情大方框作为一个部分的原因:由于订单详情中的信息,红色方框内的信息会不断重复,每一个新被增加进来的商品都有相同的内容,会重复出现,但只是参数不同。
- 因此考虑把重复出现,模型不变, 只是数据变化的部分抽象为一个整体。
- 最后,在这个案例中,抽取的购物车模型最终包括:商品详情,积分,总价,清空购物车,提交订单这4个部分。
- 最终,我们选择把商品信息单独做一个 javabean,而购物车的 javabean 中包括 商品项这个 javabean。这两者组合成为我们的最终的购物车的 javabean。而我们的工作就是填充这个最终的 JavaBean 中的数据,并且最终把这份数据响应到指定的前端页面,前端页面把这份数据摆放到指定好的位置即可。
购物车逻辑分析
- 第一个问题:购物车这个页面是怎么样出现的?
- 分析:用户在商品详情页面,点击加入购物车之后,即跳转到这个页面。
- 第二个问题:用户点击了加入购物车之后,这个商品的信息如何呈现到了购物车页面
- 分析:用户点击之后,携带这个商品的信息,以及其他的信息,组合成购物车页面中需要的信息,然后传递到购物车页面,购物车页面中再根据传递过来的信息,拿出需要的放置在经过布局的合理位置
- 逻辑总结:
- 用户点击某个商品的加入购物车之后,前台携带这个商品的信息id,跳转到后台的业务层。在业务层我们需要打包一份数据,即我们抽取的购物车模型,这个模型包括商品详情(图片,名称,价格,单类商品总价,删除某一件商品等),积分,提交,清空购物车等。
- 这份购物车模型的数据中,关于商品详情部分,我们可以通过用户触发的请求传递过来的商品Id这个参数从数据库中查询到完整的商品信息。然后我们从商品信息中拿出需要的部分,再抽取出来,放置到这份数据中。
- 当多个商品详情的部分出现,我们就又可以根据这些商品详情计算得到总价,积分等功能
- 这是直观化的模型
- 我们需要做的就是根据请求传递过来的参数,把这份模型中需要的数据获取到,以及完善其中的一些功能
- 最后,我们把这整份数据响应到购物车的前端页面
- 前端页面接收这份响应回来的数据,根据页面布局,从中拿需要的部分,放置到事先规定好的位置
- 总结一句话:依旧是数据的获取和响应,只不过是各种数据的打包响应。
购物车存储的位置
- cookie:暂时存储与服务端,但是非保密,可被删除,不安全。
- session:速度较快,但是占用了其他的资源如内存
- 持久化存储:可长久存储,但是数据获取的过程相对而言较慢