需求描述
做一个在线制作方便面的网站。首先进入系统你能够选择在线制作方便面,进入该模块系统会初始化系统的对象,并且会自动创建一个面饼,然后可以选择吃面的容器,容器有碗和盆,再选择水,水有纯净水、牛奶和可乐,还需要选择配料,配料有香肠,鸡蛋,牛肉,番茄。牛奶、鸡蛋、香肠、牛肉、番茄是需要开通vip,开通vip不需要任何条件,只需要点击开通vip即可。如果在首页点击的是水和配料的简介时,进入水和配料的简介界面。
系统描述
- 应用场景描述
基于servlet的在线制作方便面游戏 - 设计模式选择
外观模式,工厂模式,单例模式,观察者模式,策略模式 - 实现语言与工具
Java、Servlet、Vue、idea
需求分析
用例图
1、点击食材信息展示能展示食材信息
2、点击制作方便面选项,能进入制作页面,选择想要的食材然后传入后端。
3、点击升级vip功能,能够选择更多的食材
4、点击今日制作方便面,能够将选择的食材放入选择的容器中并且煮
5、选择制作方便面之后,就能看到评分和评价
选用的设计模式
工厂模式,单例模式,外观模式,策略模式,观察者模式
1、系统中的水和配料和吃面的容器对象的创建使用工厂模式来创建。
2、并且水和配料对象我只创建一个,用户在使用这些对象都是唯一的,即用户对同一个对象进行操作使用的是单例模式。
3、在用户进入首页时,可以进入两个系统模块,一个是制作方便面,一个时进入水和配料的介绍,使用了外观模式,在处理首页请求时,进行初始化操作,然后根据需要重定向到特定的页面
4、对于是否升级vip使用观察者模式,处理首页的servlet将需要开通vip的对象放入观察者集合里面,并且使用策略1将观察者的open字段设置为false。在点击升级vip之后使用策略2,将观察者的open字段设置为true
5、在打分和评价中使用策略模式,如果选择的时碗就使用策略1,将重新new出来的碗加入用户选择的水和配料。如果人用户选择的时盆使用策略2,将重新new出来的盆加入用户选择的水和配料。
系统功能模块设计
类图
工厂模式类图
策略模式视图
观察者模式类图
系统演示
模块1
模块2
未开通vip,不能选择vip食材
点击开通
选择之后完成
代码和文档在github
github地址:https://github.com/luzhanyong/makenoodle