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

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

相关推荐
Song_RsHt8 分钟前
Redis 与微服务,什么场景下无可替代
java·redis·后端·学习·微服务
学长毕设28 分钟前
基于SpringBoot的建筑材料管理系统-附源码
java·spring boot·后端
摸爬滚打的小李1 小时前
关于 Arthas
java·后端
砚底藏山河1 小时前
python量化实操:冷热分层存储
java·开发语言·python·金融
yuniko-n1 小时前
【JUC】原子类
java
惊讶的猫1 小时前
Query 改写
java·rag
信誓旦旦的程序猿1 小时前
【Python量化实战宝典 #18】MACD 金叉死叉手册:DIF、DEA、柱体全拆解(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
Misnearch2 小时前
第7章 面向对象技术
java·开发语言·软考
weixin_BYSJ19872 小时前
电竞先锋网站---附源码02032
java·vue.js·spring boot·python·django·tomcat·php
会编程的吕洞宾2 小时前
LangChain4j 流式输出实战:让 AI 回复像打字机一样逐字显示
java·开发语言·人工智能·后端