设计模式 :策略(strategy)

本文深入探讨了策略模式的设计原理,不仅介绍了策略模式中常见的strategy类,还详细解释了context类的作用及其与strategy类交互的两种方式。第一种方式是context预先计算好参数再传递给strategy,这种方式可能带来扩展性和效率问题;第二种方式是context将自身引用传递给strategy,由strategy按需获取参数,这种方式虽然解决了前一种方式的问题,但也可能导致strategy与context之间的耦合过紧。
设计模式常读常新

以前只知道策略模式中存在可替换的strategy类。
其实还应该有一个context类,负责给策略提供需要的参数,提供参数的方式有两种:

[b]1 context计算strategy 所需的参数,并传入[/b]
该方式会遇到扩展性和效率的问题
扩展性:提供的参数不满足新的策略的要求。
效率:在一些情况下context计算的参数根本不为stratey所用,浪费时间。
[b]
2 context传入自己的引用,由strategy自行选择所需的内容[/b]
该方式避免了上面的缺点,但会使strategy依赖context,二者紧密耦合,此时需要细致设计context接口。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值