设计模式之策略模式

一、策略模式介绍

策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列算法,并将每一种算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的上下文对象。策略模式涉及到三个主要角色:

  1. 策略接口(Strategy Interface):定义了一个公共接口,所有的算法或行为以这个接口为准。环境角色使用这个接口来调用具体的算法。

  2. 具体策略类(Concrete Strategies):实现了策略接口的类。具体策略类封装了具体的算法或行为,并负责具体的计算过程。

  3. 环境类(Context):接受客户的请求,随后把请求委托给某一个策略类。环境类会维护对策略对象的引用,并可在运行时动态地改变具体的策略。这个类一般会有一个成员变量来保存对策略对象的引用,还有一个成员方法来设置环境对象的策略。

策略模式的优点

  • 算法自由切换:策略模式使得算法可以在不影响到客户端的情况下变化。
  • 避免使用多重条件判断:将条件判断语句转移到了具体的策略类中进行,从而避免了多重条件语句。
  • 扩展性良好:当增加一个新的算法时,不需要修改原来已经写好的代码,只需要添加一个新的策略类即可。

策略模式的缺点

  • 策略类会增多:每增加一个策略,就需要增加一个策略类,这样会导致系统中类的个数大量增加。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值