在这章,主要完成的工作内容是对概要设计中的顺序图进行总结整理,定义实现各个功能模块所需要的接口,以及设计各个层次中类与类之间的依赖关系。

接口定义

注册

功能描述:实现会员信息的保存。

Service层

register(User user):实现注册操作。

Dao层

getUserByUserName(String userName):根据用户名获取用户记录。

save(User user):保存用户记录。

登录

功能描述:使用会员的登录流程。

Service层

login(String userName,String passWord):实现登录操作

Dao层

getUserByUserName(String userName):根据用户名获取用户记录。

添加购物车

功能描述:将商品添加到会员的购物车中。

Service层

addGoodsToCart(Map request,Integer goodsId,String userName):增加购物车记录。

Dao层

getCartByGoodsIdAndUserNama(Integer goodsId,String userName):根据商品编码和用户名获取对应的购物车记录

saveCartRecord(Cart cart):保存购物车记录。

saveOrUpdateRecord(Cart cart):保存或更新购物车记录。

查看购物车

功能描述:会员查看已添加到购物车中的商品信息。

Service层

checkCartRecord(Map session, String userName):根据用户名查询购物车记录。

Dao层

getCartByUserName(String userName):根据用户名获取对应的购物车记录列表。

购买

功能描述:实现会员购买商品的业务流程。

Service层

generateOrder(Integer goodsId, Map session, Orders orders):生成订单记录。

generateOrder(Map session, Orders order):“立即购买”的操作。

checkOut(Integer orderId):支付订单操作。

Dao层

getGoodsByGoodsId(Integer goodsId):根据商品编码获取指定商品记录。

getUserByUserName(String userName):根据用户名获取用户记录。

saveOrUpdateOrder(Orders order):保存或更新订单记录。

saveOrUpdateOrderGoods(Order_Goods orderGoods):保存或更新订单商品表。

deleteCart(String userName):删除购物车记录。

查看订单

功能描述:会员查看已生成的订单记录信息。

Service层

checkOrder(Map session, Map request):用户查看所有订单记录。

checkOrderDetail(Integer orderId, Map request):用户根据订单编码查看订单记录详情。

Dao层

getOrdersByUserName(String userName):根据用户名获取订单记录列表。

getOrderGoodsByOrderId(Integer orderId):根据订单编号获取订单记录信息。

检索商品

功能描述:用户根据商品类别查看特定的商品记录。

Service层

searchGoods(String goodsType):根据商品类别查找商品记录。

Dao层

getGoodsByCategory(String goodsType):根据商品类别获取商品记录列表。

商品信息管理

功能描述:管理员对商品进行增加,删除和修改操作。

Service层

getAllGoodsInfo(Map requset):获取所有的商品记录信息。

addGoodsRecord(GoodsVo goods):增加商品记录。

deleteGoodsRecord(Integer goodsId):删除商品记录。

searchGoods(Integer goodsId):根据商品编码搜索商品记录。

changeGoodsInfo(Goods goods):更新商品信息。

Dao层

getAllGoods():获取所有商品记录。

getGoodsByGoodsId(Integer goodsId):根据商品编码获取商品记录。

saveOrUpdateGoodsInfo(Goods goods):保存或更新商品记录。

deleteGoods(Goods goods):删除商品记录。

用户管理

功能描述:管理员对用户进行增加和删除操作。

Service层

addUser(User user):增加用户记录。

deleteUser(String userName):删除用户记录。

Dao层

deleteUserByUserName(String userName):根据用户名删除用户记录。

类与类之间的依赖关系

Model层:

根据概要设计,可以得出各个实体类之间的关系如下描述:

购物车表 用户表 多对一

购物车表 商品表 多对一

单向关联,通过购物车表可以得到用户信息,商品信息

订单表 商品表 多对多

订单表 订单_商品表 一对一

单向关联,通过订单表可以得到订单_商品表的信息

订单_商品表 商品表 一对一

单向关联,通过订单_商品表可以得到商品表信息

订单表 会员 多对一

实体类之间的关系如下图:

Service层:

根据需求分析及概要设计,将Service层定义为业务逻辑处理层,同时采用面向接口的编程思想,将业务逻辑功能的实现与定义分隔开,使得系统的耦合度大大降低的同时也使得系统的灵活性和可扩展性大幅度提高。

根据功能模块接口的定义,将Service层中的业务逻辑处理分为4类:购物车业务处理CartManager,商品业务处理GoodsManager,订单业务处理OrderManager,用户信息业务处理UserManager。各个类之间的关联以及实现的接口如下图所示:

Dao层:

根据需求分析及概要设计,将Dao层定义为数据访问层,同时采用面向接口的编程思想,将数据访问功能的实现与定义分隔开,使得系统的耦合度大大降低的同时也使得系统的灵活性和可扩展性大幅度提高。

根据功能模块接口的定义,将Dao层中的数据访问处理分为4类:购物车数据访问处理CartDao,商品数据访问处理GoodsDao,订单数据访问处理OrderDao,用户数据访问处理UserDao。各个类之间的关联以及实现的接口如下图所示:

python杂志订阅系统详细设计_系统详细设计相关推荐

  1. 4g内存电脑装xp系统怎么样_系统坏了?去店了重装系统又贵?今天手把手教你如何重装系统...

    估计很多人电脑的系统坏了,第一时间就是去店了重装系统,价钱一般50以上.小编有一个朋友,就是电脑系统坏了,去店里重装系统要70块钱,然后我朋友说50块钱可不可以,店员立马说:"No prob ...

  2. python杂志订阅系统详细设计_从发布-订阅模式谈谈 Flask 的 Signals

    发布-订阅模式 发布-订阅模式,顾名思义,就像大家订报纸一样,出版社发布不同类型的报纸杂志不同的读者根据不同的需求预定符合自己口味的的报纸杂志,付费之后由邮局安排人员统一派送. 上面一段话,提到了发布 ...

  3. python杂志订阅系统详细设计_图书管理系统详细设计报告

    实验 5 图书管理系统的详细设计 1. 引言 1.1 编写目的 编写本报告是为了在软件的实际开发过程中有个参考, 也是对一个软件的最详细. 最全 面的综述,便于全面把握开发过程的实况. 1.2 背景 ...

  4. python手机销售系统详细设计_数据库详细设计文档 .doc

    [原创]定制代写r/python/spss/matlab/WEKA/sas/sql/C++/stata/eviews数据挖掘和统计分析可视化调研报告等服务(附代码数据), 咨询邮箱: 30253934 ...

  5. python输出欢迎某某某_系统流程图也称为业务流程图,它表达的是()。

    [论述题]研习衣原体,绘出思维导图! [单选题]下列Python程序的运行结果是 a=1;b=0 def Fuction1(): global a for i in (1,2,3,4):a+=1 b= ...

  6. 杂志订阅管理系统c++_电池管理系统BMS功能安全开发流程详解

    点击上面 "电动知家"可以订阅哦! BMS功能安全开发流程详解 BMS和ISO26262 - BMS & ISO26262简介 BMS即Battery Management ...

  7. 杂志订阅管理系统c++_有哪些值得收藏的室内设计杂志?

    干货千万别贪多. 在信息爆炸的时代身边虽然资源很多,但只有潜心认真学习自己喜欢的几个项目,深入研究,才能有所收获.另外可能有些网站国内无法打开. 本篇只介绍海外的室内设计有关杂志,以后有新的杂志会再补 ...

  8. linus系统下载_系统管理程序卷土重来,Linus拒绝并阅读电子邮件,以及更多行业趋势

    linus系统下载 作为我在具有开放源代码开发模型的企业软件公司担任高级产品营销经理的角色的一部分,我定期发布有关产品营销人员,经理和其他影响者的开源社区,市场和行业趋势的更新. 以下是该更新中我和他 ...

  9. java 切换系统输入法_系统语言改变时,输入法变成默认输入法分析

    当系统的语言改变时,选择的输入法会变成默认输入法: 实现的过程在:InputMethodManagerService.java中的: mContext.registerReceiver(// 这里对语 ...

最新文章

  1. python+selenium浏览器常用操作(一)
  2. 70种芯片细分领域、国产MCU重要代表企业
  3. ECLIPSE 调试F8-------运行到下一断点处 F5-------STEP INTO F6-------STEP OVER
  4. 目标检测(Object Detection)原理与实现
  5. 如何用命令行刷新,启用,禁用Magento2的缓存
  6. HAN:基于双层注意力机制的异质图深度神经网络
  7. Openjudge-计算概论(A)-求分数序列和
  8. hihocoder 二分
  9. 编写批处理文件-------基础
  10. win10休眠设置_电脑总是“打瞌睡”?教你如何简单关闭自动休眠
  11. 阿里云mysql不让锁表_MySQL中InnoDB锁不住表的原因
  12. Nginx源码阅读 ---- 模块的初始化
  13. linux系统怎么启动服务器,Linux操作系统的启动步骤详细说明
  14. modbus调试工具开发(1)--windows下编译libmodbus库文件
  15. BP神经网络 MATLAB源程序
  16. chrome打开链接隐私设置错误_解决用谷歌浏览器访问https网站遇到的“隐私设置错误 您的连接不是私密连接”问题...
  17. XmlHttp的open( )方法
  18. 美国〈国家地理〉镜头中的极致之地
  19. 转自:今天我们怎样学软件技术,怎样教软件课程?——作者:金旭亮
  20. 马尔科夫链怎样用matlab,求助,关于matalab马尔可夫链仿真

热门文章

  1. android 录制mv框架,MVPro MVPro-简单的 AndroidMVP 框架 @codeKK Android开源站
  2. 淘宝API应用调用官方买家信息数据
  3. 浏览器内核Gecko与WebKit哪个性能更强大
  4. Bootstrap 模态框(Modal)的属性及方法
  5. HTTPS网站提示证书有安全问题的解决方案
  6. js 原型相关知识点总结
  7. 深度解剖HashMap底层原理
  8. 面试集锦-------LRU,LFU手撕算法
  9. onLoad onShow
  10. TLE5012B_SPI通讯+零点矫正思路总结