设计模式学习之路-----策略模式
2013-04-23 12:53
316 查看
设计模式
设计模式是经过很多人总结的如何组织编写代码的方法。使用设计模式能够让编写出维护性好,复用性好,扩展性好的代码。常用的设计模式大概有23种下面一一进行介绍
策略模式
策略模式是对程序中可变的部分建立一组算法族,让算法能够互相替换,将算法的调用者和算法的实现分离。例如当前有一个一卡通的平台,这个平台中使用到了很多个厂家的一卡通终端设备(考勤机、消费机、门禁机等等)。现在要开发一个库,要求通过统一接口对这些设备进行操作,操作有数据提取,参数设置,设备授权等等。
需求分析:
1)这些设备可能来至不同的厂家,他们的底层API,肯定会存在不一致的情况。
对于每个设备他们的参数可能会不一致,有所变化
3)对应每个设备所需的通讯可能不一致(有点是串口通信,有的是网络通信)
4)同一个厂家的设备会存在一些通用的API调用,因此还要考虑到代码复用的问题。
5)设备存在脱机和联机两种工作模式。
根据上面的需求分析结果,我们可以定义一个设备的抽象基类、一个对设备进行各种操作的方法接口、一个通讯参数定义的接口,一个对设备进行各项参数设置的接口。在基类中定义这些接口,在子类中进行实例化。同时对于不同厂家的设备定义继承于该方法接口的抽象类。
上图为终端设备的类结构图,其中设备的具体实现类都继承于BaseTerminal这个抽象类,在该抽象类中定义了设备的方法接口ITerminalMethod,子类在这家的构造函数中决定该设备方法接口由哪个一个具体类来实现。让调用者与被调用的算法分离。
IccoXFTerminal、IccoKQTerminal、LiLianXFTermerinal、LiLianMJTerminal分别西可的消费机、西可的考勤机、利连的消费机、利连的门禁机,他们都派生于BaseTerminal设备基类。由这些基类来决定采用哪个类来实现
ITerminalMethod接口。
ITerminalMethod接口定义了设备的各种操作方法。
相关文章推荐
- 设计模式学习之路——策略模式
- 设计模式学习之路——Strategy 策略模式
- 设计模式学习之路-策略模式
- <C/C++ 版> 设计模式 学习之 策略模式
- 设计模式学习笔记之策略模式
- 设计模式学习之策略模式(Strategy,行为型模式)(13)
- 学习php设计模式 php实现策略模式(strategy)
- 设计模式的学习之路--连接放回连接池装饰者模式实现
- [学习笔记]设计模式[0]-{策略模式}
- Java设计模式(学习整理)---策略模式
- 设计模式学习之路-备忘录模式
- 从零开始学习设计模式——策略模式
- 设计模式学习之一策略模式(Strategy)——从鸭子的设计说起
- 设计模式学习笔记(14)——策略模式
- 设计模式学习--策略模式
- <C/C++ 版> 设计模式 学习之 策略模式+工厂模式
- 设计模式学习总结(一)策略模式Strategy Pattern
- 设计模式(二)学习----策略模式
- 设计模式学习1——策略模式(Strategy)
- 设计模式学习——策略模式