2010-04-28 97 views
1

使用GUI通過USB與設備通信編寫聲音控制小程序。有幾種類型的控制器正在使用,推子,旋鈕,開關。雖然功能相似,但每種方法都有不同的計算方法,範圍和設置,但最終所有內容都會集中到一個大結構中併發送。
問題是這樣的嗎?我應該考慮清理這個問題嗎?目前幾乎所有的控件都有一個特定的事件處理程序,用於更新主要的控件結構,GUI外觀的任何更改,然後更新設備,但它看起來很雜亂,而且我認爲這種事情可能已經建立,但我不是那個知識淵博的人。用於聲音控制的GUI小程序模式

回答

0

每個控件具有更改主結構的「更改」事件處理程序的體系結構在用戶一次只能操作一個控件的應用程序中是有意義的。如果每個控件的事件具有相同的簽名,那麼希望代碼只有一個處理程序方法 - 如果在代碼庫中每個控件都有自己的具有相同主結構更新代碼的方法,那麼這是一個重構的好地方。

如果每個控件具有不同的屬性以及它需要對主結構執行的不同操作,那麼這個多事件處理程序體系結構是非常明智的。

一兩件事,可能是有意義的是你的指示,GUI被刷新/重繪/更新之前,新的控制信息發送到設備。但是,如果兩種操作所需的時間很少,那麼這不會有什麼區別。

警告 - 大多數話題不對稱:最後,我從你的描述中假定GUI是標準的看起來像面板的機架安裝的音頻組件事情。就我個人而言,我討厭這些東西。他們看起來不錯(排序有時),但控件只是一個痛苦的使用。

例如,典型的旋鈕控制是通過點擊它然後上下拖動(或者有時左右)來操縱的。雖然我經常發現鼠標光標本身遮擋了旋鈕上已經很難看到的小黑色指示線(然後我移動鼠標),但這是功能性的(儘管它不是真正的旋鈕的工作方式)所以我可以看到它,這是一個問題)。我已經使用了一些旋鈕控件,需要像真正的旋鈕那樣的圓形運動,但這些只有在它們很大時纔有用。

典型的撥動開關控制是另一個小小的PITA,需要點擊一個小東西然後移動它一小段距離。關於任何操作系統中的標準控制,通常都是如此:它們很醜,但由於某種原因它們很醜陋,原因是一般的可用性。

最後,計算機屏幕界面在真實世界的硬件用戶界面上的整體優勢在於計算機用戶界面可以利用動態調整大小和重新排列用戶界面元素。當你有意識地使你的用戶界面看起來像一塊金屬或塑料(或木紋)時,這種優勢就會被拋出窗外。

+0

我懷疑用戶可以一次更改很多控件,如果通信鏈接失敗或被拒絕,GUI更新將不得不退回。 順便說一句 - 這是一個很好的咆哮,和我見過的一樣好,說實話你是在向合唱團傳道。不幸的是,簽名我的支票的人都是關於'外觀'的,他正在用面板設計。這是關於benjamins,特別是我的來源。 – Gio 2010-04-29 15:39:38

+0

看起來好像所有暢銷的音頻應用程序都是這樣的(Rebirth,FL Studio等),所以我想這些東西賣得很好。我想我的咆哮更多的是針對那些容忍甚至更喜歡這種界面的用戶(就像我把所有那些有紋身和ro b的二頭肌和下巴毛的人歸咎於女性一樣)。 – MusiGenesis 2010-04-29 17:12:05