封装购物车

来源:互联网 发布:阿里云香港主机速度慢 编辑:程序博客网 时间:2024/06/05 15:17

在SSH的商城项目中有个像淘宝一样的购物车,这个具体是怎么实现的,现在给大家解释解释。

首先:


封装一个购物车对象:


* Cart:购物车对象:


* CartItem的集合:(选择Map集合,移除购物车时候比较方便.)


* total:总计:


*功能:


*将购物项添加到购物车:


*从购物车中移除购物项:


*清空购物车:


下面是代码:这是封装好的购物项对象

<span style="font-family:KaiTi_GB2312;font-size:18px;">import cn.itcast.shop.product.vo.Product;/** * 购物项对象 * */public class CartItem {private Product product;// 购物项中商品信息private int count;// 购买某种商品数量private double subtotal;// 购买某种商品小计public Product getProduct() {return product;}public void setProduct(Product product) {this.product = product;}public int getCount() {return count;}public void setCount(int count) {this.count = count;}// 小计自动计算的.public double getSubtotal() {return count * product.getShop_price();}/*public void setSubtotal(double subtotal) {this.subtotal = subtotal;}*/}</span>



还有一个封装好购物车对象

<span style="font-family:KaiTi_GB2312;font-size:18px;">import java.io.Serializable;import java.util.Collection;import java.util.LinkedHashMap;import java.util.Map;/** * 购物车对象 *  * @author 传智.郭嘉 *  */public class Cart implements Serializable{// 购物车属性// 购物项集合:Map的key就是商品pid,value:购物项private Map<Integer, CartItem> map = new LinkedHashMap<Integer, CartItem>();// Cart对象中有一个叫cartItems属性.public Collection<CartItem> getCartItems(){return map.values();}// 购物总计:private double total;public double getTotal() {return total;}// 购物车的功能:// 1.将购物项添加到购物车public void addCart(CartItem cartItem) {// 判断购物车中是否已经存在该购物项:/* *  * 如果存在: *  * 数量增加 *  * 总计 = 总计 + 购物项小计 *  * 如果不存在: *  * 向map中添加购物项 *  * 总计 = 总计 + 购物项小计 */// 获得商品id.Integer pid = cartItem.getProduct().getPid();// 判断购物车中是否已经存在该购物项:if(map.containsKey(pid)){// 存在CartItem _cartItem = map.get(pid);// 获得购物车中原来的购物项_cartItem.setCount(_cartItem.getCount()+cartItem.getCount());}else{// 不存在map.put(pid, cartItem);}// 设置总计的值total += cartItem.getSubtotal();}// 2.从购物车移除购物项public void removeCart(Integer pid) {// 将购物项移除购物车:CartItem cartItem = map.remove(pid);// 总计 = 总计 -移除的购物项小计:total -= cartItem.getSubtotal();}// 3.清空购物车public void clearCart() {// 将所有购物项清空map.clear();// 将总计设置为0total = 0;}}</span>

下面就可以了在Action中使用了。


在这里是想问一下大家,平时大家都有积累一些经典代码的习惯,积累的这些代码,时间一长就会变多,这时候大家是怎么管理这些代码的。请指教。 



1 0
原创粉丝点击