设计模式:策略模式(Strategy)
2023-09-27 14:29:21 时间
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
策略模式的角色:
1. 抽象策略角色(Strategy):策略类,通常由一个接口或者抽象类实现
2. 具体策略角色(ConcreteStrategy):包装了相关的算法和行为
3. 环境角色(Context):持有一个策略类的引用,最终给客户端调用
设计模式学习(四):Strategy策略模式 Strategy的意思是“策略”,指的是与敌军对垒时行军作战的方法。在编程中,我们可以将它理解为“算法”。无论什么程序,其目的都是解决问题。而为了解决问题,我们又需要编写特定的算法。使用Strategy模式可以整体地替换算法的实现部分,能让我们轻松地以不同的算法去解决同一个问题,这种模式就是Strategy模式。
设计模式系列1 - 模板模式&策略模式 之前一直做业务,写代码基本也都是if...else,设计模式虽然很早就知道(研究生期间把4人帮的那本《设计模式》都看了3遍),但是没有实际去写这块代码,所有总有一种雾里探花的感觉,然后时间一长,有的模式就忘记了,真遇到代码需要去重构时,或者看别人代码,还得查一下资料,“哦,原来是用的这个设计模式,对上号了”。所以这次我打算结合具体的业务场景,将常用的设计模式全部整理出来,主要是不想再眼高手低,以后代码重构时,各种设计模式能信手拈来,那么我的目的就达成了哈。
人人都会设计模式:03-策略模式--Strategy 人人都会设计模式第三篇策略模式,学会策略你基本上可以横着走,当你不知所措的时候,那么你一定需要策略模式,让我们来感受一下吧
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
策略模式的角色:
1. 抽象策略角色(Strategy):策略类,通常由一个接口或者抽象类实现
2. 具体策略角色(ConcreteStrategy):包装了相关的算法和行为
3. 环境角色(Context):持有一个策略类的引用,最终给客户端调用
这里引用参考资料3中的例子来详细说明一下策略模式。
“赔了夫人又折兵”——这个是《三国演义》里的著名桥段,主要是说刘备要去吴国娶孙权妹妹了,走之前诸葛亮给了赵云三个锦囊:“你保主公入吴,可一次按这三个锦囊内之计行事。”第一计:初入东吴,告知全城刘备娶孙尚香,并拜访乔国老,让吴国太施压不让刺杀刘备;第二计:刘备沉迷酒色,乐而忘返之计,骗说:“今早接孔明来报,曹操起精兵五十万,杀奔荆州而来!军情十分紧急,请主公马上回荆州!”;第三计:逃跑之时,孙夫人断后。
1 抽象策略角色
策略模式和工厂模式的区别
工厂模式是创建型的设计模式,它接受指令,创建出符合要求的实例;而策略模式是行为型的,它接受已经创建好的实例,实现不同的行为。
设计模式学习(四):Strategy策略模式 Strategy的意思是“策略”,指的是与敌军对垒时行军作战的方法。在编程中,我们可以将它理解为“算法”。无论什么程序,其目的都是解决问题。而为了解决问题,我们又需要编写特定的算法。使用Strategy模式可以整体地替换算法的实现部分,能让我们轻松地以不同的算法去解决同一个问题,这种模式就是Strategy模式。
设计模式系列1 - 模板模式&策略模式 之前一直做业务,写代码基本也都是if...else,设计模式虽然很早就知道(研究生期间把4人帮的那本《设计模式》都看了3遍),但是没有实际去写这块代码,所有总有一种雾里探花的感觉,然后时间一长,有的模式就忘记了,真遇到代码需要去重构时,或者看别人代码,还得查一下资料,“哦,原来是用的这个设计模式,对上号了”。所以这次我打算结合具体的业务场景,将常用的设计模式全部整理出来,主要是不想再眼高手低,以后代码重构时,各种设计模式能信手拈来,那么我的目的就达成了哈。
人人都会设计模式:03-策略模式--Strategy 人人都会设计模式第三篇策略模式,学会策略你基本上可以横着走,当你不知所措的时候,那么你一定需要策略模式,让我们来感受一下吧
相关文章
- 设计模式复习-迭代器模式
- 设计模式复习-建造者模式
- 设计模式-解释器模式
- 设计模式-中介者模式
- Java描述设计模式(04):抽象工厂模式
- 负载均衡算法,轮询方式 大话设计模式之工厂模式 C#
- 设计模式------策略模式
- 反射的方式破解单例模式
- 设计模式: 策略模式+工厂模式+模板模式应用实践
- 设计模式--行为型模式--备忘录模式
- 设计模式--行为型模式--策略模式
- PHP 设计模式 笔记与总结(9)数据对象映射模式
- PHP 设计模式 笔记与总结(8)策略模式
- Composite模式(组合设计模式)
- [设计模式] 14 命令模式 Command
- 《混合云计算》——1.2 云计算的要素:资源池/云计算模式和服务
- 设计模式之策略模式
- php设计模式-工厂模式
- php设计模式-策略模式
- 浅析什么是设计模式(套路)、为什么需要设计模式(最优解决方案)、前端常见设计模式(策略模式、发布订阅模式、装饰器模式、适配器模式、职责链模式、代理模式)
- 深入Java设计模式之策略模式
- 设计模式-抽象工厂模式
- 国庆假期带你玩转设计模式之享元模式
- 设计模式(四)外观模式
- 深入理解JavaScript系列(33):设计模式之策略模式
- 设计模式详解:Strategy(策略模式)
- python 设计模式之 单例模式
- 设计模式:Strategy 策略模式 -- 行为型
- 设计模式(十):Decorator装饰者模式 -- 结构型模式
- 从王者荣耀看设计模式(一.策略模式)
- 深入理解JavaScript系列(33):设计模式之策略模式