设计模式之策略模式 一
来源:互联网 发布:淘宝迷你型三辊研磨机 编辑:程序博客网 时间:2024/06/16 05:33
问题
大多数产品开发过程中分为开发环境,集成环境,灰度环境和线上环境。不同的环境的服务器规格的不同,导致性能测试上限不同。因此对不同根据环境或者条件的不同选择不同的算法或者策略来完成该功能。
需求
如何让算法和对象分开,让算法独立于使用它的主体?
解决方案
环境类(Context):用一个ConcreteStrategy对象来配置。维护一个对Strategy对象的引用。可定义一个接口来让Strategy访问它的数据。
抽象策略类(Strategy):定义所有支持的算法的公共接口。 Context使用这个接口来调用某ConcreteStrategy定义的算法。
具体策略类(ConcreteStrategy):以Strategy接口实现某具体算法。
分析
优点
- 相关算法系列 继承有助于消除冗余代码
- 提供了可以替换继承关系的办法
- 消除了一些if else条件语句
缺点
- 客户端必须知道所有的策略类,并自行决定使用哪一个策略类
- Strategy和Context之间的通信开销
- 策略模式将造成产生很多策略类
阅读全文
0 0
- 设计模式一之策略模式(strategy)
- 设计模式之策略模式(一)
- 设计模式一之策略模式
- 设计模式(一)之策略模式
- 设计模式一之策略模式
- 每日一设计模式之策略模式
- 设计模式之策略模式 一
- 设计模式一 策略模式
- 设计模式(一) 策略模式
- 设计模式一:策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- Winodws下编译OpenH264 for Windows
- Android ViewFlipper
- 设计模式之(一)——策略模式(Strategy Pattern)
- 设计模式(十七)Memento备忘录
- STM8S103之串口中断接收
- 设计模式之策略模式 一
- 高并发软件系统设计原理与实践(二)——性能指标
- mysql联合索引
- STM32定时器周期计算
- Value
- CSS选择器有哪些
- 拷贝构造的N种情况
- 使用百度ueditor时提交表单获取不到数据
- Android 是时候使用Camera2的时候了(当Camera无界面不能预览)