2009年2月10日星期二

多态与适配器模式

背景:N2X和TestCenter的很多功能都很类似。以前同样的功能都是针对不同的设备写的独立代码。
提出一个需求:测试人员希望一个测试step的代码对于设备是透明的,既能在n2x上跑,也能在TC上跑。
问题:虽然这两个设备的多数功能都有重叠,但是每个功能API的接口参数、格式还是有差别的,而且具体的功能能力也是有些差别的。

解决:
抽象出一个参数类。
抽象出一个设备接口,定义出设备能力。
直接用OO的多态特性对调用进行设备匹配。
有的同事说用适配器模式。适配器模式是针对接口不一致时进行中间层的适配。这里其实体现的是一种动态地对某种实现的选择。似乎没有必要立刻就考虑使用哪种模式。
【UI层通过使用tab等组件根据设备的不同接受参数输入。】

困难:
功能的差异还是很难解决。