首页 > 其他 > 详细

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

时间:2014-06-05 14:19:09      阅读:430      评论:0      收藏:0      [点我收藏+]

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

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

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

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

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

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

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

1 interface ICalculator{
2     
3     public int calculator(int a, int b);
4 
5 }

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

bubuko.com,布布扣
1 class Plus implements ICalculator {
2 
3     @Override
4     public int calculator(int a, int b) {
5         return a + b;
6     }
7 
8 }
bubuko.com,布布扣
bubuko.com,布布扣
1 class Minus implements ICalculator {
2 
3     @Override
4     public int calculator(int a, int b) {
5         return a - b;
6     }
7 
8 }
bubuko.com,布布扣
bubuko.com,布布扣
1 class Multiply implements ICalculator {
2 
3     @Override
4     public int calculator(int a, int b) {
5         return a * b;
6     }
7 
8 }
bubuko.com,布布扣

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

bubuko.com,布布扣
 1 class Context{
 2     
 3     private ICalculator iCalculator;
 4     
 5     public Context(ICalculator iCalculator){
 6         this.iCalculator = iCalculator;
 7     }
 8     
 9     public int calculator(int a, int b){
10         return iCalculator.calculator(a, b);
11     }
12     
13 }
bubuko.com,布布扣

4. 测试:

bubuko.com,布布扣
1 public class StrategyTest {
2 
3     public static void main(String[] args) {
4         Context context = new Context(new Plus());
5         context.calculator(2, 3);
6     }
7 
8 }
bubuko.com,布布扣

 

设计模式总结篇系列:策略模式(Strategy),布布扣,bubuko.com

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

原文:http://www.cnblogs.com/lwbqqyumidi/p/3769085.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!