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

接口定义

注册

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

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. node sqlite 插入数据_安卓手机中的应用数据都保存在哪些文件中?
  2. libev源码解析——定时器监视器和组织形式
  3. Document 对象的常用方法
  4. python主成分分析相关系数_python如何进行主成分分析
  5. C++ cctype定义的函数 - 学习笔记(7)
  6. pyspark读写SequenceFile
  7. [蓝桥杯][2015年第六届真题]表格计算(递归+记忆化)
  8. 55天 - 贪心算法 - 田忌赛马问题 openjudge百炼 2287
  9. HTML5网站大观:分享8个精美的 HTML5 网站案例
  10. html中下拉日历控件,HTML5之日历控件
  11. envi与arcgis文件转换_ArcGIS ENVI中土地分类格式互转、土地利用转移矩阵、变化图谱计算详解...
  12. 插桩 java_Javassist进行方法插桩
  13. Apache Flink 在双十一流量洪峰下的最佳实践
  14. 创建Allegro差分对
  15. 弹箭三自由度弹道计算程序(c++ vs2017 )
  16. Springboot搭建文件服务器
  17. 大冬与小冉的故事 !!!-----阿冬专栏
  18. [POJ 3683]Priest Johns Busiest Day
  19. 剑指 Offer 24. 反转链表java
  20. 剖析SPDK读写NVMe盘过程--从hello_world开始

热门文章

  1. 图片轮换的按钮如何通过像素定位
  2. 如何优雅判断属性值为空
  3. java中判断对象中某个属性是否为空
  4. 日志采样率_为什么要在生产中采样调试日志
  5. 解决用steam客户端购买游戏验证登录信息失败的方法
  6. GEE开发之ERA5(气温、降水、压力、风速等)数据获取和分析
  7. 大于在python中怎么打出来_在python中,如何检查输入不是空的并且是大于零的数字...
  8. cbrt c语音_sqrt - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  9. 下载的mp3音频怎么转换wav格式
  10. mysql5.7驱动(tableau,excel)