您的位置:首页 > 其它

设计模式学习之路-----策略模式

2013-04-23 12:53 316 查看

设计模式

      设计模式是经过很多人总结的如何组织编写代码的方法。使用设计模式能够让编写出维护性好,复用性好,扩展性好的代码。

常用的设计模式大概有23种下面一一进行介绍

策略模式

      策略模式是对程序中可变的部分建立一组算法族,让算法能够互相替换,将算法的调用者和算法的实现分离。

        例如当前有一个一卡通的平台,这个平台中使用到了很多个厂家的一卡通终端设备(考勤机、消费机、门禁机等等)。现在要开发一个库,要求通过统一接口对这些设备进行操作,操作有数据提取,参数设置,设备授权等等。

需求分析:

1)这些设备可能来至不同的厂家,他们的底层API,肯定会存在不一致的情况。

对于每个设备他们的参数可能会不一致,有所变化

3)对应每个设备所需的通讯可能不一致(有点是串口通信,有的是网络通信)

4)同一个厂家的设备会存在一些通用的API调用,因此还要考虑到代码复用的问题。

5)设备存在脱机和联机两种工作模式。

 

根据上面的需求分析结果,我们可以定义一个设备的抽象基类、一个对设备进行各种操作的方法接口、一个通讯参数定义的接口,一个对设备进行各项参数设置的接口。在基类中定义这些接口,在子类中进行实例化。同时对于不同厂家的设备定义继承于该方法接口的抽象类。



 

上图为终端设备的类结构图,其中设备的具体实现类都继承于BaseTerminal这个抽象类,在该抽象类中定义了设备的方法接口ITerminalMethod,子类在这家的构造函数中决定该设备方法接口由哪个一个具体类来实现。让调用者与被调用的算法分离。



     IccoXFTerminal、IccoKQTerminal、LiLianXFTermerinal、LiLianMJTerminal分别西可的消费机、西可的考勤机、利连的消费机、利连的门禁机,他们都派生于BaseTerminal设备基类。由这些基类来决定采用哪个类来实现
ITerminalMethod接口。

ITerminalMethod接口定义了设备的各种操作方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: