商城系统中的购物车伪代码(java)(javaEE初学者,欢迎沟通交流 [email protected])

购物项(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

原文地址:https://www.cnblogs.com/cl-andy/p/9167469.html

时间: 2024-11-13 03:51:33

商城系统中的购物车伪代码(java)(javaEE初学者,欢迎沟通交流 [email protected])的相关文章

中小型商城系统中的分类/产品属性/扩展属性的数据库设计

声明:之所以定位在"中小型"商城系统,而非“大型”(指淘宝.拍拍这类巨无霸),理由很简单----我一直都呆在(创业型的)小公司,没见过这些大家伙是怎么设计的:) 正文: 之前发表过一篇"商城系统中[商品扩展属性]的表单生成及客户端验证",部分童鞋对于后台数据库的设计比较感兴趣,于是今天把这部分也补上. 一.产品分类设计越来越多的商城系统都热衷于选择“无限级分类”的设计,我也不例外,因为它方便扩展.这部分就不详细展开了,详见 无限级分类(非递归算法/存储过程版/GUI

在商城系统中使用设计模式----策略模式

1.概念: 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改.这种类型的设计模式属于行为型模式. 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象.策略对象改变 context 对象的执行算法. 2.注意: 主要解决:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护. 何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为. 注意事项:如果一个系统的策略多于四个,就需要考虑使用

maven项目中使用redis集群报错: java.lang.NumberFormatException: For input string: "[email protected]"

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [redis.clients.jedis.JedisCluster]: Constructor threw exception; nested exception is java.lang.NumberFormatException: For input string: "[email protected]" at

java.io.IOException: Can't read [[email protected]] (Can't process class [WEB-INF/clas

执行Maven Install打包的时候,出现以下错误信息: [proguard] ProGuard, version 4.4 [proguard] Reading input... [proguard] Reading program war [F:\Workspaces\pro-test\target\pro-test-0.0.1-SNAPSHOT.war] (filtered) [proguard] java.io.IOException: Can't read [[email prote

用 Java 技术创建 RESTful Web 服务/@[email protected]@PathParam

简介 JAX-RS (JSR-311) 是为 Java EE 环境下的 RESTful 服务能力提供的一种规范.它能提供对传统的基于 SOAP 的 Web 服务的一种可行替代. 在本文中,了解 JAX-RS 的主要组件.本文用一个例子展示了一个企业如何使用 JAX-RS 内的功能以一种 Restful 的方式公开员工的联系信息. 背景 多年来,开发人员使用各种工具在其 Java 应用程序内创建 RESTful 服务.由于 REST 架构的简单性,主要需求 - 接收 HTTP 消息和头部的能力 -

在商城系统中使用设计模式----策略模式之在spring中使用观察者模式和发布/订阅

1.概念: 观察者模式: 是属于设计者模式中的一种,一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知. 发布/订阅: 是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者),而是通过调度器将消息发布给订阅者. 2.区别:下图明显可以看出发布/订阅比观察者模式中多了一层中间信道, 在Observer模式中,O bservers知道Subject,同时Subject还保留了Observers的记录.然而,在发布者/订阅者中,发布者和订阅

NopCommerce商城系统中的eventbus

nopcommerce中事件发布与订阅是相对比较规范的, 1.IConsumer 消费者 public interface IConsumer<T> { void HandleEvent(T eventMessage); } 2.IEventPublisher 事件发布者 事件调用者,程序入口, /// <summary> /// Evnt publisher /// </summary> public interface IEventPublisher { /// &

商城系统没有这些后台功能,就是渣渣!

随着微信市场的不断扩大,各种微信商城系统也层出不穷.在众多的商城系统中,无论好坏,有些后台功能都是必不可少的.有些功能,有没有都不会影响商城系统的正常运作.有的功能缺失了之后,商城系统是没有办法正常的运作. 要想商城系统正常的运作,有些功能是必须不能少的.少了之后,商城系统真的就会"玩不转"的. 商城系统的哪些后台功能是必不可少的呢? 商品管理 做商城系统,如果缺少商品,那是真的什么都做不了.商品管理功能,是商城系统最基本的一个功能.商品管理一般包括基本的商品介绍.价格.数量.上下架等

白酒分销商城系统开发源码

白酒分销商城系统介绍 白酒分销商城系统常用两种语言,一种是net语言写的,一种是开源的PHP顺序 现在白酒分销商城系统使用门槛低,网络上有很多第三方分销平台,例如汉全开发的白酒分销商城系统   一般来说,搭建一个"白酒分销商城系统"本钱是域名+空间+源码.而源码可以去某宝买,当然可能会面临很多后门漏洞,以及后期维护升级没有技术支持等,所以在以汉全为代表的第三方"白酒分销商城系统"开发公司为白酒企业商家定制开发的"白酒分销商城系统"才是正解. 白酒