C 模块体系结构,模块循环依赖性



在工作中,我们有一个基于QT5的软件C 项目。目前,我们的项目有7个模块。每个都有一个单独的角色。

我们当前的问题在于两个特定模块:

  • 网络
  • 设备

网络模块可以完成所有网络,创建插座,接收数据等。设备模块很好,对所有可以连接到该程序的设备的描述及其操纵它们的方法和方法。

我们无法确定的是彼此依赖关系的最佳行动方案,因为我们需要具有所有设备的动态列表。这些设备通过特定制作的协议添加到此列表中,即网络模块捕获。我的同事说,网络模块应该列出所有设备,但我说网络模块在那里没有业务。因此,目前,我们取决于设备和设备模块,具体取决于网络模块。我的想法如下:

  1. 创建一个新的模块,该模块结束了整个协议,并让网络模块仅在具有回调列表的同时控制低级网络,可以添加以将上述设备添加到设备模块中的列表中。

  2. 使所有模块中的所有内容都在整个模块中进行,而忘记了头脑风暴,最终得到了一个巨大的代码,无法管理,也无法很好地测试。

我在这里需要一些具体的建议来解决解决方案,这是长期且持久的,以尽可能轻松地维护和测试代码。

添加其他层,每种责任通常都是一个好主意。

只要您确定一个提供干净接口的清晰,可分开的任务,然后为其创建一个新的图层/类/模块/组件。

在您的情况下,隔离设备管理器似乎是一个很好的主意。

考虑创建更多模块。一个模块低级网络(根本没有设备的东西)。一个模块设备管理(无网络)。也许第三个模块包含设备相关的网络代码(作为设备管理和网络之间的中间层)?不知道您的项目的更多细节,很难说。

模块往往太大且太复杂。我很少见到太小的模块。

最新更新