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

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

相关推荐
焦虑的说说1 分钟前
虚拟线程浅析
java
摇滚侠14 分钟前
《SpringBoot 3:入门与应用实战》第 7 章 AOP 思想与实现 阅读笔记 13
java·spring boot·笔记
Mr. zhihao17 分钟前
线上卡顿排查决策手册:场景 × 命令 × 现象 × 调整方案
java·开发语言·jvm
FYKJ_201021 分钟前
springboot网上购书商城---附源码15749
java·spring boot·后端·python·spark·django·php
LayZhangStrive34 分钟前
Java IDEA - 各种快捷键设置汇总(提高工具使用效率)
java·idea·设置·快捷键
snow@li1 小时前
Java:事务管理全景梳理/解决业务系统数据一致性问题
java
额额额对了1 小时前
Linux 进程管理详解:从概念到实战
java·服务器·前端
evans在进步1 小时前
Spring Boot 启动流程与 @SpringBootApplication 核心原理详解
java·spring boot·后端
许彰午1 小时前
11-rawSql占位符替换
java·低代码·架构