问题场景
  1. 用户选中某一件商品之后,会有点击结算的功能。此时,页面跳转到结算界面,并且在这个页面中显示一些相关的信息。
  2. 以京东为例:
    1. 购物车结算按钮
    2. 结算界面
功能步骤
  1. 用户进入购物车页面,选中指定商品
  2. 用户点击结算按钮
  3. 界面跳转到结算界面,并附带购物车内选中的商品的相关信息
功能分析
  1. 这个功能的起始页面是购物车页面,终止页面是结算页面。我们需要考虑在用户点击了结算按钮并且跳转到具体的结算页面的这个过程中:
  1. 当用户点击了结算按钮之后,发生了哪些调用,响应了哪些数据
  2. 以及这些数据是怎么样跳转到结算页面的
  3. 在结算页面,如何获取这些数据,以及如何布局数据的位置
  1. 观察发现,在结算页面有如下一些信息如:商品的全部的信息,商品实际需要付款价格,收货人姓名,电话,地址等等。
  2. 我们考虑这些数据的来源:
  1. 商品信息:购物车中获取(session 或 cookie 如果是旧订单,则取自数据库)
  2. 收货人信息:用户现场填入 or 从已经设置的收货地址中选中
  3. 其他例如:订单编号(随机生成),下单时间,订单总价(计算选中物品价格之和),订单状态,等等
  1. 那么这个流程就是:当用户点击了结算按钮之后,调用了业务层,在业务层中,我们分别从数据源获取这些数据或者是新生成,总之,最终目标是得到结算页面需要的全部的信息,并且把这些信息打包组合,之后传递给订单详情页面。
  2. 在订单详情页面,我们根据传递过来的数据,根据页面布局,取其中需要的部分,放置在指定的位置,即可完成目标。
功能实现部分代码(以本项目为例)
  1. 用户点击结算(提交订单),之后发生的后台业务调用:
    1.在页面中的位置
  2. java电商商品计算优惠怎么算 java计算购物结算_业务层

  3. 2. 左下角是点击之后跳转的路径(业务层)
  4. 业务层:主要功能组装数据,响应数据
  5. java电商商品计算优惠怎么算 java计算购物结算_页面布局_02

  6. 结算页面:主要是接收业务层响应回来的数据,根据页面布局,取需要的放置在指定的位置
  1. 结算页面(练习项目,仅仿照京东部分内容)
  2. 结算页面代码部分
总结
  1. 订单项的实体化,类似购物车的实体化。都是一些数据的组合
  2. 抽取大的逻辑框架:依旧是发起请求,组合数据,响应数据,布局数据
  3. 难点在于当项目中模块逐渐增加,代码逐渐增多之后,以上的4个步骤之间的请求响应关系可能不再直接,而趋于间接,就容易出错。