java的策略设计模式

1.策略模式简介
策略模式:策略模式是一种行为型模式,它将对象和行为分开,将行为定义为 一个行为接口 和 具体行为的实现。策略模式最大的特点是行为的变化,行为之间可以相互替换。每个if判断都可以理解为就是一个策略。本模式使得算法可独立于使用它的用户而变化

2.模式结构
策略模式包含如下角色:

Strategy: 抽象策略类:策略是一个接口,该接口定义若干个算法标识,即定义了若干个抽象方法(如下图的algorithm())

Context: 环境类 /上下文类:

上下文是依赖于接口的类(是面向策略设计的类,如下图Context类),即上下文包含用策略(接口)声明的变量(如下图的strategy成员变量)。
上下文提供一个方法(如下图Context类中的的lookAlgorithm()方法),该方法委托策略变量调用具体策略所实现的策略接口中的方法(实现接口的类重写策略(接口)中的方法,来完成具体功能)
ConcreteStrategy: 具体策略类:具体策略是实现策略接口的类(如下图的ConcreteStrategyA类和ConcreteStrategyB类)。具体策略实现策略接口所定义的抽象方法,即给出算法标识的具体方法。(说白了就是重写策略类的方法!)

 

 

 

3.案例

在这里插入图片描述

1).传统实现方式

代码

 

 

 传统的实现方式,通过传统if代码判断。这样就会导致后期的维护性非常差。当后期需要新增计费方式,还需要在这里再加上if(),也不符合设计模式的开闭原则。

 

2).策略模式实现

抽象类策略

 

 

 

 

 

 

 

上下文类

也叫做上下文类或环境类,起承上启下封装作用。

 

 

 

 

 


————————————————
版权声明:本文为CSDN博主「塔塔开!!!」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_54773252/article/details/121032404

posted on 2022-07-14 16:04  ClareBaby01  阅读(584)  评论(0编辑  收藏  举报