策略模式( Strategy Pattern) 也叫做政策模式(Policy Pattern)

文档地址:《设计模式之禅》​​​​​​​

定义: Define a family of algorithms,encapsulate each one,and make them interchangeable.(定义一组算法, 将每个算法都封装起来, 并且使它们之间可以互换。 )

通用类图:

                

                 ● Context封装角色

                        它也叫做上下文角色, 起承上启下封装作用, 屏蔽高层模块对策略、 算法的直接访问,装可能存在的变化。

                ● Strategy抽象策略角色

                        策略、 算法家族的抽象, 通常为接口, 定义每个策略或算法必须具有的方法和属性。

                ● ConcreteStrategy具体策略角色

                        实现抽象策略中的操作, 该类含有具体的算法。

优点:

                 ● 算法可以自由切换

                 ● 避免使用多重条件判断

                 ● 扩展性良好

缺点:

                 ● 策略类数量增多

                 ● 所有的策略类都需要对外暴露

使用场景:

                ● 多个类只有在算法或行为上稍有不同的场景。

                ● 算法需要自由切换的场景。

                ● 需要屏蔽算法规则的场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值