天天看点

策略模式

经典的策略模式如下图所示:

策略模式

让我解释一下这幅图的含义,icontext是上下文的接口类,istrategy是策略的接口,istrategy依赖于icontext,也就是icontext里面存有一个istrategy的策略字段。

其实策略模式说白了,就像诸葛亮给刘备的锦囊妙计一样,遇到一种具体的情况,采取一种相应的策略。也就像我们平时会观察天气,根据今天有没有下雨,选择要不要打伞,下雨的话,那么打伞;不下雨就不打伞。

下面我们用代码来演示一下经典的策略模式。我们将要做的是,从一个数组中提取一个值,这个值的提取要根据用户的选择,也就是我们要根据用户的选择提取对应的值。假设用户有三种选择,选最大值,最小值,选第一个值。

1、首先我们要实现公共接口

策略模式
策略模式

2、实现相应的策略类

策略模式
策略模式

3、最后,我们利用策略模式来切换策略

策略模式
策略模式

最后附上完整的单元测试类

策略模式
策略模式
策略模式

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/p/3285395.html

继续阅读