23种设计模式之策略模式
发布时间:2020-12-13 20:57:05 所属栏目:百科 来源:网络整理
导读:策略模式的定义 定义: 定义一组算法,将每个算法都封装起来,并且使它们之间可以互换 通俗的说,就是对一个接口下的一组算法进行封装 其类图如下: 其中三个角色说明: Strategy 抽象策略角色: 策略、算法家族的抽象,通常为接口,定义每个策略或算法必须具有的方法
策略模式的定义定义: 定义一组算法,将每个算法都封装起来,并且使它们之间可以互换 通俗的说,就是对一个接口下的一组算法进行封装 其类图如下: 其中三个角色说明:
策略模式的重点就是封装角色,它借用了代理模式的思路,差别就是策略模式的封装角色和被封装的策略类不用是同一个接口,如果是同一个接口就成了代理模式 代码如下: 抽象的策略角色: 具体的策略角色: 封装角色: 场景类: 策略模式的应用策略模式的优点:
策略模式的缺点:
策略模式的使用场景:
如果系统中的一个策略家族的具体策略数量超过4个,则需要考虑使用混合模式,解决策略类膨胀和对外暴露的问题,否则日后的系统维护就会成为一个烫手山芋,谁也不想接 策略模式是一个非常常用的模式,但它单独使用的地方就比较少了,因为他有致命缺陷: 所有的策略都需要暴露出去,这样才方便客户端使用哪一个策略. 在实际项目中,我们一般通过工厂方法模式来实现策略类的声明. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |