设计模式--策略模式

1.定义

     策略模式把"干什么"和"怎么干"解耦合,将干的算法抽象出来,让算法修改替换增加的时候互不影响。

2.使用场景

干一件事情有n种干法(策略),干法们是平等的。

3.优缺点   

1)算法修改,替换和增加的时候互不影响;但是客户端有影响,比如新加算法,客户就要知道依赖于新的算法类。
2)客户端决定什么情况下使用什么策略,系统的灵活性高;但客户端需要理解所有具体算法间的区别,以便选择合适的算法,在一定程度上增加了客户端的使用难度。

4.和其他模式区别
1)和状态模式的区别
策略模式和状态模式做得是同一件事:把干什么和怎么干去耦合。

策略模式和状态模式区别:策略模式Context设置策略择;而状态模式Context和具体状态类都会设置状态。状态模式的每个状态类中需要包含Context和其他状态类,以便状态类切换状态,因此Context和状态类之间存在一种双向的关联关系。


2)简单工厂的区别:点击打开链接

工厂模式是创建型模式 ,客户端和对象创建解耦合,返回一个产品。
策略模式是对象行为型模式 ,客户端和算法执行解耦合,执行一个算法。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值