您的位置:首页 > 其它

设计模式总结篇系列:策略模式(Strategy)

2014-06-05 00:43 537 查看
前面的博文中分别介绍了Java设计模式中的创建型模式和结构型模式。从本文开始,将分别介绍设计模式中的第三大类,行为型模式。首先我们了解下分为此三大类的依据。

创建型模式:主要侧重于对象的创建过程;

结构型模式:主要侧重于处理类或对象的组合;

行为型模式:主要侧重于类或对象之间的交互以及职责分配。

首先了解下策略模式的概念:定义了多个算法,并将它们封装起来(一般的是每个算法封装成一个单独的类),让算法独立于客户端而可以单独变化。

具体可以看一下下面的例子(以计算加、减、乘为例):

1. 对加、减、乘每个算各自封装成一个类,首先定义其共同的接口:

interface ICalculator{

public int calculator(int a, int b);

}


2. 分别定义加、减、乘算法类:

class Plus implements ICalculator {

@Override
public int calculator(int a, int b) {
return a + b;
}

}


class Minus implements ICalculator {

@Override
public int calculator(int a, int b) {
return a - b;
}

}


class Multiply implements ICalculator {

@Override
public int calculator(int a, int b) {
return a * b;
}

}


3. 定义上下文环境类,用于封装各个算法类操作:

class Context{

private ICalculator iCalculator;

public Context(ICalculator iCalculator){
this.iCalculator = iCalculator;
}

public int calculator(int a, int b){
return iCalculator.calculator(a, b);
}

}


4. 测试:

public class StrategyTest {

public static void main(String[] args) {
Context context = new Context(new Plus());
context.calculator(2, 3);
}

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