用于声音控制的GUI小程序的模式

时间:2010-04-28 19:50:02

标签: .net usb design-patterns

使用GUI编写声音控制小程序,通过USB与设备通信。有几种类型的控件,推子,旋钮,开/关开关。尽管存在功能相似,但每个都有不同的计算,范围和设置,尽管最终所有内容都会被汇集到一个大型结构中并传送到其中。
问题是:是否有一个特定的模式我应该考虑清理它?目前,几乎每个控件都有一个特定的事件处理程序,它可以更新主控制结构,GUI外观的任何变化,然后更新设备,但它看起来很麻烦和麻烦,而且我在想这可能已经确定了这种事情的模式,但我不是那个知识渊博的人。

1 个答案:

答案 0 :(得分:0)

一种架构,其中每个控件都有一个“已更改”的事件处理程序,用于更新主结构,这在用户一次只能操作一个控件的应用程序中是有意义的。如果每个控件的事件具有相同的签名,那么希望代码只有一个处理程序方法 - 如果在代码库中每个控件都有自己的方法,并且具有相同的主结构更新代码,那么这是重构的好地方

如果每个控件都有不同的属性和它需要对主结构做的不同的事情,那么这个多事件处理程序架构是完全合理的。

>但是,如果两次操作所需的时间都很小,那么这将没有任何区别。

警告 - 主要是偏离主题的咆哮:最后,我假设您的描述中GUI是标准的外观,类似于机架安装音频的面板 - 组件类的东西。就个人而言,我讨厌这些事情。它们看起来很好(有点有时),但控件只是一种痛苦。

例如,通过单击它然后上下拖动(或有时向右和向左)来操纵典型的旋钮控件。这是有用的(即使它不是“真正的”旋钮的工作方式),虽然我经常发现鼠标光标本身遮挡了旋钮上已经很难看到的小黑色指示线(然后我移动鼠标所以我可以看到它,这是一个问题)。我使用了一些需要圆形运动的旋钮控件,就像真正的旋钮一样,但这些只在它们很大时才有用。

典型的拨动开关控制是另一个小PITA,需要您点击一个小东西,然后移动一小段距离。关于任何操作系统中的标准控件,有一点是正确的:它们很难看,但出于某种原因它们很难看,原因是一般的可用性。

最后,计算机屏幕UI在现实世界的硬件UI上的全部优势在于计算机UI可以利用动态调整UI元素的大小和重新排列。当你有意识地使你的UI看起来像一块金属或塑料(或木纹)时,这个优势会被抛到窗外。