您的位置:首页 > 编程语言 > C#

C#面向对象模式设计第二十三讲:Startegy 策略模式(行为型模式)

2012-03-23 12:05 603 查看
(根据MSDN WebCast相关课程整理)

这是一种应用非常广泛的行为型设计模式。

对象可能经常需要用多种不同的算法,但是如果变化频繁,会将类型变得很脆弱。





如上图所示,对于一个立方休,取不同的截面,那么它的面积计算方法就会不同,需要采用不同的算法。

那么,如何在运行时,不更改方法而动态的设计算法呢?将算法与对象解耦,实现动态加载。

C#中动态可加载以支持运行时变化的技术手段有:

虚函数,接口,委托,反射

GoF:定义一系列算法,把它们一个个封装起来,并且使它们可互相替换,该模式使得算法可以独立于使用它的客户系统的变化。

一个没有采用策略模式的示例:









采用策略模式后,实现了算法策略与具体对象的分离,这样在同一个对象中,传入不同的策略对象,就可以实现不同的算法,从而达到动态改变算法的目的。





<完>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐