【软件设计与体系结构】-策略设计模式

1. 实验内容

某电商系统,销售Sale类中包含销售项SaleItem对象的列表,SaleItem类包括商品名称、数量、单价等数据域。

现有的Sale类calculateTotalPrice ()方法计算总价,其遍历所有的SaleItem对象,通过累积每个SaleItem对象的数量×单价,求得总价。

但是目前系统要求促销活动时能灵活采用多种打折算法,例如打8折 ,或满200减50 等,请采用策略设计模式 对现有设计修改。

(提示:Sale类依赖于计算总价的接口,calculateTotalPrice ()方法委托给该接口计算总价,该接口的实现对象可由构造方法或setter方法注入Sale。 另外可使用配置文件中记录具体的计算总价实现类的类名,读配置文件后由java反射机制得到实例对象,然后注入)

2. 设计URL类图

3. 伪代码及运行截图

1)策略接口PriceCalculationStrategy

2)具体策略实现类Discount80Strategy、 Full200Minus50Strategy

3)商品项类 SaleItem

4)销售类 Sale

5 .) 客户测试类 Client

相关推荐
\光辉岁月/3 分钟前
5.java-数组
java·开发语言
谢亮_vipxieliang19 分钟前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
郑州光合科技余经理41 分钟前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
2601_9620715742 分钟前
类变量和全局变量的生命周期有什么区别?
java·开发语言·jvm
code2cat1 小时前
Java进阶篇之AtomicReference:一次替换引用,读到一份完整状态
java·并发编程·不可变对象·atomicreference
专业程序开发源1 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
Wang's Blog1 小时前
Java 项目实战: 外卖平台优化-前后端分离开发模式与工程拆分
java·开发语言
HEJOO92 小时前
指针的算术运算详解
java·数据结构·算法
sunshine22 girl2 小时前
Java学习六 Java常见API-2--String-3-字符串的截取替换和其他方法
java·开发语言·学习
EatFan2 小时前
从“框架混战“到“运行时收敛“:2026 年 AI Agent 开发框架的三条路线之争
java·数据库·人工智能·多智能体·ai agent·mcp·agent 框架