type
status
date
slug
summary
tags
category
icon
password
AI summary

一、定义

notion image
策略模式:指定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。

二、示例:

模拟场景: 1、在本案例中我们模拟在购买商品时候使⽤的各种类型优惠券(满减、直减、折扣、n元购),这个场景⼏乎也是⼤家的⼀个⽇常购物省钱渠道,购买商品的时候都希望找⼀些优惠券,让购买的商品更加实惠。

传统编码

通过if判断,券的类型越多,if也就越多,代码冗余,臃肿

策略模式设计

折扣接口
满减
N元购
直减价
折扣价
策略控制类
测试:ApiTest

UML关系图

notion image
总结: 以上的策略模式案例相对来说不并不复杂,主要的逻辑都是体现在关于不同种类优惠券的计算折扣策略上。结构相对来说也⽐较简单,在实际的开发中
这样的设计模式也是⾮常常⽤
的。另外这样的
设计与命令模式、适配器模式结构
相似,但是思路是有差异的。
通过策略设计模式的使⽤可以把我们⽅法中的if语句优化掉,⼤量的if语句使⽤会让代码难以扩展,也不好维护,同时在后期遇到各种问题也很难维护。在使⽤这样的设计模式后可以很好的满⾜隔离性与和扩展性,对于不断新增的需求也⾮常⽅便承接。
 
JAVA【设计模式】抽象工厂模式JAVA【设计模式】备忘录模式