自然环境中的五种常见传感器与RFID中间件技术的应用二
在介绍无线射频识别RFID中间件技术时,我们需要关注其设计模式的应用,尤其是在门面模式、工厂模式和状态模式等方面。这些设计模式帮助我们实现系统的模块化和可扩展性。
首先,让我们来看一下门面模式(Facade)的应用。在图6所示的序列图中,我们可以看到客户端与Facade类建立了联系,而不是直接与后台应用系统,即中间件进行交互。这就实现了对系统内部外部的清晰隔离,使得客户端能够对中间件的内部实现一无所知,这体现了封装性。类似的设计可以在源代码示例中找到,它使用简单工厂模式(Simple Factory)来替换API实现类的版本,而不需要客户端知道这一切。
接下来,我们讨论状态模式(State)。规则在其生命周期中的不同状态具有不同的表现,因此我们可以通过状态模式模拟规则的状态机,将每个状态下的表现作为可变化因素封装起来。例如,ECState接口定义了一系列操作,如subscribe、unsubscribe和poll,而具体操作由ECStateUnrequested、ECStateRequested和ECStateActive这三个具体实现类完成。在ECSpec类中,我们使用多态性特征根据当前state字段指向对象动态确定哪个具体实现类完成工作。此外,为了辅助状态机跳转,还需要设计多个定时器类。
最后,让我们看看策略模式(Strategy)的应用。在事件周期结束后,中间件组装报告上传给规则预订者,即应用系统。而报告上传方式有多种,如HTTP、Socket或JMS等。核心逻辑处理模块不应该关心具体上传技术,只需将数据格式正确地通过报告上传模块发送出去。而实际上是由ReportSender接口及其几个不同类型实例如ReportSenderByHttp、ReportSenderBySocket以及ReportSenderByJms负责不同的发送方式。这使得发送消息工人类可以通过设置不同实例来灵活设置发送方式,从而达到开闭原则,即软件 entities should be open for extension, but closed for modification。