购物项(Item)
(属性)
商品对象(商品的pid也是购物项的主键) product
购买数量(用户输入) count
金额小计(购买数量*商品单价(product.getShop_price)) subtotal = count*product.getPrice()
购物车(cart)
(属性)
map集合(商品的pid,购物项) map(String, Item)
金额总计(所有购物项的金额小计的总和,初始值为零) total=0.0
(动作)
添加购物项到购物车
从购物车删除某个购物项
清空购物车
添加购物车过程
1.生成购物项item
2.判断购物车中是否有此购物项
取出购物项item中的商品pid:pid = item.getProduct().getPid();
使用map.containsKey(pid)判断购物车的map集合中是否已经包含该商品
2.1 购物车包含该商品:修改item中的购买数量,修改购物车中的金额总计
修改后的购买数量:count = item.setCount(map.get(pid).getCount()+item.getCount());
修改后的金额总计:total = total (原来的金额总计)+ item.getSubtotal()(新增的数量的金额总计);
2.2 购物车不包含该商品:直接将(商品pid,购物项)添加到map集合,并计算金额总计
直接添加map:map.put(item.getProduct().getPid(), item);
金额总计:total += total(原来的金额总计) + item.getSubtotal
添加购物车过结束
从购物车中删除某个购物项
1.根据pid删除购物项 CartItem item = map.remove(pid);
2.修改购物车中的金额总计
购物车当前金额总计 = 购物车金额总计 - 删除的item的金额小计
购物车金额总计total -= item.getSubtotal();
购物车中删除某商品过程结束
清空购物车
1.使用clear()方法清空购物车中的购物项 map.clear();
2.修改购物车金额总计为0.0 total = 0.0