策略模式
什么是策略模式
策略模式(Strategy Pattern) 也叫作**政策模式(Policy)**是指定义了算法组并分别封装起来,让他们可以互相替换使得算法的更改并不会影响使用了算法的用户。策略模式属于行为性设计模式,在策略模式中,一个类的行为及算法可以在运行时更改。
策略模式的重点理解
策略模式重在抽象行为,即将行为抽象为具体的类,调用的时候动态选择行为,策略模式不同策略之间可以相互替换,并不影响最终结果,比如定义不同算法,不同算法之间虽然逻辑不同,但要求执行结果一样,所以策略模式多用于封装算法
简单代码示例
一个商店有三种用户:普通用户、vip用户、svip用户
普通用户:不打折,原价购买
vip用户:9折购买
svip用户:8折购买
如果不使用策略模式我们可能会这样写
public class NoStrategy {
//user是用户等级,money是用户支付的金额
public double A(String user,double money){
if("svip用户" == user)