设计模式系列总览
设计模式 | 飞机票 |
---|---|
三大工厂模式 | 登机入口 |
策略模式 | 登机入口 |
委派模式 | 登机入口 |
模板方法模式 | 登机入口 |
观察者模式 | 登机入口 |
单例模式 | 登机入口 |
原型模式 | 登机入口 |
代理模式 | 登机入口 |
装饰者模式 | 登机入口 |
适配器模式 | 登机入口 |
建造者模式 | 登机入口 |
责任链模式 | 登机入口 |
享元模式 | 登机入口 |
组合模式 | 登机入口 |
门面模式 | 登机入口 |
桥接模式 | 登机入口 |
中介者模式 | 登机入口 |
迭代器模式 | 登机入口 |
状态模式 | 登机入口 |
解释器模式 | 登机入口 |
备忘录模式 | 登机入口 |
命令模式 | 登机入口 |
访问者模式 | 登机入口 |
软件设计7大原则和设计模式总结 | 登机入口 |
什么是策略模式
策略模式(Strategy Pattern)属于GoF23种设计模式之一,策略模式是指定义了不同的算法逻辑,并将其封装起来,让它们之间可以互相替换,此模式可以让算法逻辑发生变化时不会影响到使用算法逻辑的用户。策略模式可以用于改造代码中的if…else逻辑
策略模式使用场景
同一个系统中存在不同的逻辑算法,而彼此之间在不同场景中需要实现动态替换,如:支付方式,可以选择:支付宝,微信,银联等,彼此之间就可以相互替换,再如商场打折促销活动,有双11活动,双12活动,彼此之间可以相互替换
策略模式示例
首先策略模式必须有一个策略接口,然后根据不同业务逻辑新建不同的实现类完成具体逻辑。
接下来笔者就以支付为例来实现一个策略模式的例子,如下定义了一个顶级策略接口。
1、创建一个策略接口
import java.math.BigDecimal;
public interface PayStrategry {
boolean pay(