4

我正在使用 Java 开发一个项目,该项目使用 Suns 的串行端口库与两个串行端口设备进行通信。我必须以某种方式保持与设备的连接一直打开并处理它们的事件(根据数据恢复......)。该应用程序正在与用户交互(通过 SOAP)并且是一个控制台应用程序(稍后它可能会移动到应用程序服务器,但现在忽略它)。

问题是如何处理设备。现在我有一个带有两个静态变量的静态类,它们返回处理设备的对象。在该类的静态构造函数中,我打开连接并设置初始参数等。然后,每当我在应用程序中需要一个设备时,我都会通过以下方式获取它:Device.MyDevice,Device。MyDevice2 等...有没有更好的方法可以做到这一点,或者这个可以吗?

请记住,我在连接设备方面没有问题,我需要架构建议。

谢谢

4

1 回答 1

3

我的经验是静态构造函数可能很混乱。此外,如果您想通过编写单元测试来模拟串行通信来测试逻辑,那么这种架构会变得很困难。

另一种方法是拥有一个带有构造函数的 Device 类,该构造函数接受一些配置参数(例如,要使用哪个串行端口),并将您要连接的两个实际设备作为该类的公共静态最终字段。像这样的东西:

public class Device {
    public static final Device Device1 = new Device(...);
    public static final Device Device2 = new Device(...);

    public Device( ... ) {

    }
}

为了使测试更容易,您可以拥有该设备类实现的 Device 接口 - 如果您可以在不处理设备本身的情况下测试与设备交互的逻辑,它有助于使开发循环更加紧密。

于 2011-02-14T21:56:03.147 回答