设计模式在项目中的应用案例_设计模式在项目中的应用(初学者版)

09a6fc3705d04ada7d581f9244f2f12f.png
文章首发链接:
设计模式在项目中的实际应用(应试版)​mp.weixin.qq.com
2f8e190d89cfd6d0e7dbaa90387a76f3.png

本文适用于设计模式初学者。

很多人学习了设计模式,但在项目开发中仍然不知道如何使用;

很多小伙伴在课堂上跟着老师稀里糊涂的听了,懂了,考核让做项目,却又懵逼了。

设计模式这种从理论到应用的落地,需要有足够的编程经验和应用场景,今天这篇文章就为大家分享一下,自编自导自演的设计模式在实际项目中的开发使用。

项目中有部分是为了设计模式而设计模式,运用的虽不是很完美,但如果你练手,或者应付一次期末考核大作业,应该是没问题。

只需要你有基本的 SSM 开发经验,该项目就完全能够理解的通。

项目名称

商城购物&管理系统v0.0.1

技术

B/S 体系架构

SSM + LayUI + MySQL5.X(8.X) + IDEA + TOMCAT

项目效果

下面是项目运行截图

f96839480cbde5015401735e1c3a3ffb.png

a507a5e8bfa393293ad6f5a724a6044d.png

84aa1f7c38cf4a0f72278a2bc0ec5c23.png

业务需求

顾客登录系统后,可以购买物品;

商家有三种人员,店铺职员、库存经理、店铺Boss。店铺职员可以发起进货申请,由库存经理和店铺 Boss 审批进货申请;

用户下单后,店铺职员、库存经理都能够收到下单通知。

业务分析

  • 多用户登录(顾客、店铺职员、库存经理、老板)。采用策略模式
  • 在页面向顾客展示商品图片。图片加载采用单例模式
  • 顾客下单,通知店铺职员、库存经理。采用观察者模式
  • 店铺职员申请进货,增加库存量,小于 500,库存经理直接审批;大于 500,由老板直接审批。 采用责任链模式
  • 整体项目架构 MVC 模式

详细解析

用户登录 - 策略模式

94406c6ddbbe794d2e56de1e192875cf.png

每一种用户登录时有自己的处理方式,比如写入用户身份(0、1、2 分别代表不同的用户身份),添加不同的 Session 值。

商品图片加载 - 单例模式

51cdf1d6318934d279e88010be33b1e1.png

FtpCommection 是一个单例类,控制 FTPClient(FTP 服务用到的一个类),间接避免产生多余的 client。

ftpConnection 对象可以调用下载方法 downloadFile()。

顾客下单通知 - 观察者模式

62e560edb4ae7931e789ec0aa0236fc4.png

用户下单后,通知店铺职员和库存经理发货。

观察者为店铺职员,库存经理。被观察者为一条订单。

职员申请进货审批 - 责任链模式

b9f9eeef4ed656a5495dc6d399d0ba8f.png

店铺职员发起进货申请,进货数量小于 500 时,由库存经理直接审批;大于 500 时,需由老板 Boss 审批。

整体项目架构 - MVC 模式

7f062659d8fdf3338c83c12d708b8061.png

注意点

1. 关于 FTP 文件服务器,需要在自己本地进行搭建,我的搭载了服务器,虽然你暂时可以用,但可能不确定啥时候图片我就给删了(哈哈)。因此拿到项目后需要在自己本地搭建 FTP 文件服务器。

很简单,随便找一篇教程就可以。然后把服务器的地址、名字、密码在 CommodityServiceImpl 类中修改一下。

2. 数据库,如果使用的5.x版本的 MySQL 数据库,pom.xml 里面就采用 5.x 版本的依赖;如果是 8.x 版本的MySQL 数据库,pom.xml 里面就采用 8.x 版本的数据库;8.x 版本的数据库在 jdbc.properties 文件中,数据库的连接需要改为

 jdbc.driver=com.mysql.cj.jdbc.Driver

3. 只有在前端加载商品图片时,采用了单例模式下载 FTP 服务器中的资源。后端的商品图片获取,是直接在静态资源文件夹中写死的。

4. 项目源代码、数据库的源文件(数据库表和数据),在公众号内回复 cms 可以获取。

项目比较简单,细细读一下应该没什么问题。若有什么问题,上面的文章首发链接内有我微信,随时联系我吧。拜拜

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值