博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式总结篇系列:策略模式(Strategy)
阅读量:6476 次
发布时间:2019-06-23

本文共 1265 字,大约阅读时间需要 4 分钟。

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

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

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

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

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

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

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

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

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

1 class Plus implements ICalculator {2 3     @Override4     public int calculator(int a, int b) {5         return a + b;6     }7 8 }
1 class Minus implements ICalculator {2 3     @Override4     public int calculator(int a, int b) {5         return a - b;6     }7 8 }
1 class Multiply implements ICalculator {2 3     @Override4     public int calculator(int a, int b) {5         return a * b;6     }7 8 }

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

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 }

4. 测试:

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 }

 

转载地址:http://iplko.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
在word2003插入音乐的方法
查看>>
九、多表模型创建,一对一,一对多,基于对像的多表模型等
查看>>
Xenserver网卡丢失进入emergency mode的处理方法
查看>>
扩展实验:LAMP+NFS
查看>>
[ComandDetail] Vim
查看>>
delphi的加密与解密
查看>>
第3部分 管理NTFS权限
查看>>
我的友情链接
查看>>
面试总结之-查找算法分析
查看>>
30天30个Golang程序学习(一):格式化输出
查看>>
Vncserver安装-Centos7
查看>>
MapReduce工作的基本流程
查看>>
用JS写个产生随机字符串的函数
查看>>
Ceisum官方教程1 -- 开始
查看>>
2018,写给每一个焦虑和迷茫着的互联网人
查看>>
程序员论
查看>>
[20171225]变态的windows批处理4.txt
查看>>
zencart设置默认货币三种方法
查看>>
记录一个有意思的问题……
查看>>