我正面临以下设计问题:设想一个应用程序有两个主要部分,一个用于通信(COM)和一个用于用户界面(UI)。两者都是不同的库到不同的文件。现在,我想保持UI模块化,以便将来能够使用不同的库(即GTK,Qt,WinForms等)进行更新。 问题是:与设备的COM接口(可能在不同的时间),并且它必须在应用程序设置窗体/窗口中显示配置视图。由于每个新的COM实现可能会因不同的配置数据而不同,因此每个更改都必须反映到设置窗体/窗口中。如何设计一个可以使用多个GUI库的应用程序?
我该如何保持我的应用程序模块化,而不必被迫在每个新的COM实现中重新设计整个UI?
我想动态加载一个COM库和一个设置库。最后一个将直接取决于当前的COM实现,并与其自己的配置数据进行交互。 如果我更改COM实现,我只需重新实现设置库,并让该框架在运行时使用COM加载它。
这个解决方案对我来说有点棘手。你有其他建议吗?
谢谢你的建议。
您是否建议将配置表单/窗口保存到UI实现中,还是保存到另一个模块中,该模块直接取决于COM模块? – sawk 2014-10-11 08:02:08
@sawk使用UI实现保持UI部分,并将后端功能与后端的其余部分分开。这样您就可以在将来更改UI实现,而不必更改任何业务逻辑。 – Floegipoky 2014-10-14 02:41:18
谢谢。实际上我已经移除了动态加载部分,这听起来有点过分杀死,并且使项目有点过于复杂。创建一个通用配置对象可以包含未来实现的所有内容,这听起来也是一种矫枉过正。然后我直接让UI依赖于Core和COM实现。 – sawk 2014-10-14 08:28:26