策略模式(strategy)定义了一个算法家族,这个算法家族封装了一系列的算法,但是这些算法之间是相互可以替换的。策略模式让算法的变化和它们调用者的变化分离开来了。
UML图如下:
主要包括:
Strategy:声明了一个对所有算法而言通用的接口类,下面的Contex类使用这个接口来调用一个一个具体的Stragety的算法。
ConcreteStrategy:使用Strategy这个接口具体...
分类:
其他好文 时间:
2015-05-31 18:34:21
阅读次数:
111
五分钟一个设计模式,用最简单的方法来描述设计模式。开发一个小游戏还是先来看个例子吧。
有一天老板一拍脑袋,想做一个游戏,于是把你找来,告诉你他的想法:
做一个最简单的闯关游戏,每个关卡都有一些小怪兽,而游戏的角色通过打死所有小怪兽来通关
角色可以使用武器,先做三四个简单的武器,有一般的武器,有厉害的武器,每个武器的伤害值不一样
游戏过程中,角色可以更换武器
先做一个角色,以后可能增加新角色,但不同...
分类:
其他好文 时间:
2015-05-30 13:37:47
阅读次数:
124
策略模式的意图:
定义一系列的算法,把它们一个个的封装起来,并且使它们可以互相替换。本模式使算法可以独立于使用它的客户而变化。
该模式具有以下特征:
1、完成一件事不止有一种可以选择的方法,或者虽然现在是唯一的,但预期会不断改进或需要“备胎”。
2、各方法视图解决的是同一件事。
3、每个方法是独立于其它方法的。
4、方法的取舍因时、因势、因人而异,临场处置时择优选择一个。
策略模式的...
分类:
其他好文 时间:
2015-05-27 10:12:15
阅读次数:
114
作者:MSDN译者:李马摘要 Windows NT 3.1引入了一种名为PE文件格式的新可执行文件格式。PE文件格式的规范包含在了MSDN的CD中(Specs and Strategy, Specifications, Windows NT File Format Specifications).....
分类:
其他好文 时间:
2015-05-26 18:38:44
阅读次数:
133
NSX is VMware's strategy for Software-defined networking, it was implemented purely in software, and provides users with L2 networks over traditional ...
分类:
其他好文 时间:
2015-05-25 23:42:35
阅读次数:
159
策略模式,不知不觉中很多地方我们已经用到了。该模式用于对不同的算法进行封装,增加代码的重用度。另外由于策略模式类遵循相同的结构,因此对策略类细节的修改并不影响上层的调用。对此的另外一个优点便是,用户可以方便的替换使用不同的策略,并且也可以根据相应的接口规则个性化自己的策略类。...
分类:
其他好文 时间:
2015-05-24 23:38:21
阅读次数:
217
性能优化是一个很大的话题,大到程序架构优化,数据库设计等,小到一个特定算法,甚至js优化等等。这里我们只简单谈一下hibernate的性能优化。在使用Hibernate的时候,通过正确的方法和策略,可以提高执行效率。(一)抓取策略抓取策略(fetching strategy)是指:当应用程序需要在(...
分类:
Web程序 时间:
2015-05-21 19:25:15
阅读次数:
166
UML类图:
实例实现代码:
//抽象算法类
abstract class Strategy
{
//算法方法
public abstract void AlgorithmInterface();
}
//具体算法A
class ConcreteStrategyA : Strategy
...
分类:
其他好文 时间:
2015-05-19 19:17:56
阅读次数:
188
定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。设计原则1.将变化的部分独立出来并封装,以便以后可以轻易改动或扩充次部分,而不影响不需要变化的部分。将Duck中的行为抽取出来。2.针对接口编程,而不是实现编程。Duck类及其子类不实现这些行为,而是把这些行...
分类:
其他好文 时间:
2015-05-17 11:58:00
阅读次数:
110
声明:本系列博客参考资料《大话设计模式》,作者程杰。
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化,即封装变化的算法。
适用场景:
1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。
...
分类:
Web程序 时间:
2015-05-16 23:24:28
阅读次数:
348