问题:
我的问题是如何在设计级别解决这个问题(如何创建对象和GUI)。是否有一些模式或最佳实践的应用程序这样?
例如,我可以为每种设备类型分别创建GUI,但其中有些设置具有相同的“块”设置,因此最好为此创建UserControl。但是在这个“块”中也可能有一些基于设备软件版本的变化。
编辑:
我想更清楚地解释,我想创建什么应用程序,我想我找到了一个足够好的类比:
想象一下,这是一个设置汽车控制单元的应用程序。汽车修理工可以在他们的笔记本电脑上安装这个应用程序,然后从支持的车型列表中选择汽车模型,并连接到他们想要的任何控制单元,他们可以设置该单元中的所有内容。不管是奔驰CLA 180,菲亚特500还是野马GT。他们可以连接到它,该应用程序将只向他们显示适当的设置,为特定的汽车(甚至特定的固件版本安装在连接的单元)。
发布于 2018-04-06 13:46:34
据我所知,每个设备都支持一系列功能,并且功能可能对多个设备是共同的?如果是这样的话,您的软件架构应该反映这一点。
您可以将您的软件分成支持给定功能的各个模块。其中每一个都可以有效地开发为具有自己的逻辑和UI的独立软件。
然后,您的主应用程序只需要充当一个shell,它只加载与特定设备相关的功能,并包含所有功能(通信、日志记录等)所共有的功能。
Visual就是一个例子。“核心”visual本身并不能做很多事情,但是您可以根据您想要支持的工作流添加额外的功能(您可以在安装过程中看到这些功能)。
发布于 2018-04-06 14:42:28
你的问题还不完全清楚。但是我会尽力去理解和回答它。我同意@richzilla的回答。我也能想到另一种情况。
解决方案:您需要列出一个功能列表,这些功能可以是通用的(在任何地方都可以使用)和不同的功能(您需要对不同的设备进行更改)。您可能会有一个安装向导为您的软件安装。当安装向导执行--您可以根据什么版本或哪种类型的设备定义,哪些功能应该安装在机器上。您还可以在安装时在web.config中定义一些值,并且您的软件将在整个生命周期中使用这些值。
您的基本安装将提供所需的通用功能,不同的功能可以是可选的(用户在安装时可以选择),或者软件安装的设备类型。
重要:您可能需要考虑所有这些情况,并对所有功能进行设计。您可以阅读有关依赖注入的更多信息。你可以用来集成不同的功能。如果我正确理解你的设计和开发是非常复杂的。
https://softwareengineering.stackexchange.com/questions/368959
复制相似问题