Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95480
  • 博文数量: 109
  • 博客积分: 3411
  • 博客等级: 中校
  • 技术积分: 1155
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-01 09:04
文章分类

全部博文(109)

文章存档

2011年(109)

分类: Java

2011-07-26 16:42:03

MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0


策略模式(Strategy)属于对象行为型设计模式,主要是定义一系列的算法,把这些算 

法一个个封装成拥有共同接口的单独的类,并且使它们之间可以互换。策略模式使这些算法 

在客户端调用它们的时候能够互不影响地变化。这里的算法不要狭义的理解为数据结构中算 

法,可以理解为不同的业务处理方法。 

    这种做法会带来什么样的好处呢? 

    它将算法的使用和算法本身分离,即将变化的具体算法封装了起来,降低了代码[]的耦合 

度,系统业务策略的更变仅需少量修改。 

    算法被提取出来,这样可以使算法得到重用,这种情况还可以考虑使用享元模式来共享 

算法对象,来减少系统开销(但要注意使用享元模式的建议条件)。 

三、结构 

    先由定义来想象下它的结构吧:要使算法拥有共同的接口,这样就要实现一个接口或者 

一个抽象类出来才行。这样基本上轮廓也就出来了,我们来看看吧: 

    策略模式由三个角色组成: 

1)  算法使用环境(Context )角色:算法被引用到这里和一些其它的与环境有关的操作一起 

    来完成任务。 

2)  抽象策略(Strategy)角色:规定了所有具体策略角色所需的接口。在java 它通常由接口 

    或者抽象类来实现。 

3)  具体策略(Concrete Strategy)角色:实现了抽象策略角色定义的接口。

阅读(456) | 评论(0) | 转发(0) |
0

上一篇:状态模式

下一篇:模板模式

给主人留下些什么吧!~~