java:重构案例(MVC的M和C?)
在Java中,我有一个外部设备,我想通过串行I/O进行通信。我知道如何做到这一点,但我现在处于重构模式,以确保我有一个可维护的软件包,并在高级别上寻求关于做什么/不做什么的建议(具体问题如下) 从概念上讲,假设我有一个低级的java:重构案例(MVC的M和C?),java,architecture,refactoring,Java,Architecture,Refactoring,在Java中,我有一个外部设备,我想通过串行I/O进行通信。我知道如何做到这一点,但我现在处于重构模式,以确保我有一个可维护的软件包,并在高级别上寻求关于做什么/不做什么的建议(具体问题如下) 从概念上讲,假设我有一个低级的DeviceIOChannel接口,它有几种方法(getInputStream、getOutputStream和其他一些用于控制连接/断开检测的方法等),由一个或多个类实现,这些类处理各种数据链路类型(RS232、TCPIP等)的I/O。我的一些软件,让我们称之为设备类,专门
DeviceIOChannel
接口,它有几种方法(getInputStream、getOutputStream和其他一些用于控制连接/断开检测的方法等),由一个或多个类实现,这些类处理各种数据链路类型(RS232、TCPIP等)的I/O。我的一些软件,让我们称之为设备
类,专门用于管理I/O(解析输入、构造输出、管理低级状态机),但不知道设备通道
如何工作的细节(因此我可以将其与RS232或TCPIP一起使用,而无需更改设备
类)。因此,我可能会将DeviceIOChannel
作为参数传递给Device
的构造函数。我还想向外界公开某种数据模型
设备通道的分区是否正确
设备
需要在工作线程上主动执行某些操作。最好的设置方法是什么?我应该让它创建和管理自己的线程
还是ScheduledExecutorService
?或者我应该传入一个ScheduledExecutorService
作为构造参数吗设备
类是否应该有一个与构造不同的startup()
方法,您有什么想法(链接到web上的好文章会很理想!)?(在构造中完成所有初始化让我感到紧张……似乎类实例构造应该很快,然后应该为稍后的初始化或启动阶段保留冗长的内容。)设备
实例相比,是否有一个带有一对关机/重启方法的设备
类Device
实现的DeviceDataModel
接口有意义吗,还是应该有一个单独的类DeviceDataModel
,以某种方式与Device
类进行双向通信一次回答一个问题
一次回答一个问题