(22)策略模式-Strategy Pattern-康熙收复台湾-明珠和索额图的不同策略
2005-07-30 21:04
465 查看
前言:我也是初学者,希望大家能提出意见。另外转载请注明作者和出处,毕竟花了快一周的时间才完成。
策略模式(Strategy Pattern)和建造模式(Builder Pattern)实际上很相似,只有很小的差别。
建造模式让人去干活,具体怎么干已经给出了一定的步骤,在这个框架之内,你可以去发挥。
而策略模式让人去干活,不限制条件,我只告诉你要达到什么目的,其他的你海阔天空为所欲为,自己想办法,所以叫策略模式。
比如在我的上一篇文章《设计模式-Builder Pattern -领导者艺术-乾隆、和申、纪晓岚的故事》中,乾隆就如何对付格尔丹给出了一定的工作步骤,即必须是送黄金万两,送美女一名,骗住格尔丹。在这两个前提条件下,如何干那就看大臣的了,结果虽然条件是一样的,但和申和纪晓岚仍然得到了完全不同的结果。
在这一篇中,我讲的故事是康熙收复台湾的故事,他只选择了一个大臣,全权交给这个大臣负责(即采取了这个大臣的策略),反正你把台湾给我收回来就行了,怎么干都行我不管。结果,索额图和明珠各有妙计,均收回了台湾。
下面看看代码
客户端
using System;
namespace StrategyPattern
策略模式相关类
using System;
namespace StrategyPattern
运行效果如下:
结束语:设计模式不是你想象中的那么难吧?实际上它就在我们的生活当中,你可以使这扩展这个例子的策略类,增加一个大臣李光地如何?让他去解放台湾或许又是另外一番景象!
策略模式(Strategy Pattern)和建造模式(Builder Pattern)实际上很相似,只有很小的差别。
建造模式让人去干活,具体怎么干已经给出了一定的步骤,在这个框架之内,你可以去发挥。
而策略模式让人去干活,不限制条件,我只告诉你要达到什么目的,其他的你海阔天空为所欲为,自己想办法,所以叫策略模式。
比如在我的上一篇文章《设计模式-Builder Pattern -领导者艺术-乾隆、和申、纪晓岚的故事》中,乾隆就如何对付格尔丹给出了一定的工作步骤,即必须是送黄金万两,送美女一名,骗住格尔丹。在这两个前提条件下,如何干那就看大臣的了,结果虽然条件是一样的,但和申和纪晓岚仍然得到了完全不同的结果。
在这一篇中,我讲的故事是康熙收复台湾的故事,他只选择了一个大臣,全权交给这个大臣负责(即采取了这个大臣的策略),反正你把台湾给我收回来就行了,怎么干都行我不管。结果,索额图和明珠各有妙计,均收回了台湾。
下面看看代码
客户端
using System;
namespace StrategyPattern
策略模式相关类
using System;
namespace StrategyPattern
运行效果如下:
结束语:设计模式不是你想象中的那么难吧?实际上它就在我们的生活当中,你可以使这扩展这个例子的策略类,增加一个大臣李光地如何?让他去解放台湾或许又是另外一番景象!
相关文章推荐
- .NET设计模式(22):策略模式(Strategy Pattern)
- 策略模式--同一个任务不同的策略
- Cocos2d-x《雷电大战》(4)-策略模式实现不同子弹切换!!
- CSharp设计模式读书笔记(22):策略模式(学习难度:★☆☆☆☆,使用频率:★★★★☆)
- 代理模式 和 策略模式 看似相似,有什么不同
- 【设计模式 - 22】之策略模式(Strategy)
- 设计模式22-策略模式
- 策略模式和工厂模式的不同
- localforage 对不同浏览器 使用不同的缓存策略 , 大大提高了性能 ,IndexedDB,WebSQL 和 localStorage 三种存储模式
- 设计模式:策略模式-让你可以用不同的笔写作业
- Cocos2d-x《雷电大战》(4)-策略模式实现不同子弹切换!!
- 设计模式22:Strategy 策略模式(行为型模式)
- 【设计模式 - 22】之策略模式(Strategy)
- 设计模式22——行为型模式之策略模式
- 状态模式、策略模式的区别与不同
- 设计模式(22)--策略模式
- C#设计模式之22——策略模式
- Head First Design patterns笔记-Strategy Patterns (从不同的人使用不同的交通工具上班看策略模式)
- 设计模式22——行为型模式之策略模式
- 策略模式与SPI机制,到底有什么不同?