首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

网购百货公司 普通购物车功能的实现

2012-07-26 
网购商城 普通购物车功能的实现购物车的设计思想如下:购物车中放入的信息是用户在完成生成订单前添加的商

网购商城 普通购物车功能的实现

购物车的设计思想如下:

    购物车中放入的信息是用户在完成生成订单前添加的商品信息,一般 购物商城中 对于购物车中的信息 大多数是存放在会话session中 并未牵扯到数据库?购物车中显示的是一条或多条商品条目,而商品条目中一般包括 :商品的基本信息 (商品名称 商品的单价),购买数量 ,每个商品条目的价钱小计,最后 往往有购物车中所有商品的价格总计。?经过上面的分析 我们可以定义一个购物车条目类 即CartItem 在该类即对购物车中每个商品条目的封装 实现了商品信息,购买数量,价格总计的定义。其中totalPrice为只读属性 因为该属性值可以通过内部计算获取
    public class CartItem {private FoodInfo finfo;private int iCount;private float totalPrice;public FoodInfo getFinfo() {return finfo;}public void setFinfo(FoodInfo finfo) {this.finfo = finfo;}public int getiCount() {return iCount;}public void setiCount(int iCount) {this.iCount = iCount;}public float getTotalPrice() {this.totalPrice=this.iCount*this.finfo.getFood_price();return totalPrice;}public CartItem(FoodInfo finfo, int iCount) {super();this.finfo = finfo;this.iCount = iCount;}}
    ?因为 本次购物车 并未牵扯到数据库 所以 在购物车的实现我们直接在业务逻辑层中来完成。cartAdd方法用来实现商品条目添加,首先判断购物车中是否存在该商品 如果有更新即可否则加入cartMap中;getCartMap()方法用来读取购物车中信息;cartUpd()方法用来更新修改购物车中的信息;cartDel用来删除购物车中的某一个商品;cartClear()用来实现 清空购物车
    public class CartBizImpl implements CartBiz {//声明定义Map对象 cartMap用来存放 商品条目cartItem。其中key为商品编号 value为cartItemprivate HashMap<Integer, CartItem> cartMap=new HashMap<Integer, CartItem>();public boolean cartAdd(CartItem ci) {if(cartMap.containsKey(ci.getFinfo().getFood_id())){CartItem cOld=cartMap.get(ci.getFinfo().getFood_id());cOld.setiCount(ci.getiCount()+cOld.getiCount());}else{cartMap.put(ci.getFinfo().getFood_id(), ci);}return true;}public HashMap<Integer, CartItem> getCartMap() {return this.cartMap;}public boolean cartUpd(CartItem ci) {cartMap.put(ci.getFinfo().getFood_id(), ci);return true;}public boolean cartDel(int foodid) {cartMap.remove(foodid);return true;}public boolean cartClear() {cartMap.clear();return true;}public CartItem get(int foodId){return cartMap.get(foodId);}}
    ?在购物车的servlet中 来具体实现购物车的功能,因为购物车业务类在每次声明创建之后 完成了本次servlet它的生命周期 即结束 所以 我们将其放入session中 已达到 该业务类 能够在 整个会话期间使用
    CartItem ci=new CartItem(fi,iCount);boolean flag=false;if(session.getAttribute("shopCart")==null){CartBiz cb=new CartBizImpl();flag=cb.cartAdd(ci);session.setAttribute("shopCart", cb);}else{CartBiz cb=(CartBiz)session.getAttribute("shopCart");flag=cb.cartAdd(ci);session.setAttribute("shopCart", cb);}
    ?

以上只是简单的给出了 购物车商品信息的添加 其更新功能此处就不加 说明了

热点排行