我指的是以下幾點:在禁用的GUI選項中添加額外檢查是否是一種好的做法?
void setup_gui()
{
if (some_condition)
some_button.disable();
...
}
void some_button_click()
{
// Is this a good practice?
if (some_condition)
return;
...
}
並稱,檢查確保該程序將無法運行操作,但它也可以被看作是隱藏的錯誤(some_button_click()必須未在運行所有)。
那麼,你怎麼看待它呢?這是一個安全的編碼實踐或隱藏錯誤?
+1這個現實的答案。考慮一下網頁設計,在那裏你可以隱藏一些控件:在這種情況下,再次檢查動作執行時是非常合理的,因爲服務器/會話狀態可能已經改變(無論出於何種原因)。在獨立應用程序開發中,這些例子並不是那麼簡單,但您可能並不總是完全相信每一個可以想象的狀態轉換都會被您的代碼所捕獲,並且在一些罕見的情況下,該按鈕會被意外啓用。 – mvds 2011-01-05 15:53:49
我必須補充一點:防禦性編碼也意味着存儲狀態(在Nib,佈局xml或其他存儲GUI的方式中)默認情況下禁用了所有的功能,並且'setup_gui()'只支持*元素。 – mvds 2011-01-05 15:55:16
這是更好的,但我仍然認爲最好的解決方案是有一個可行的GUI框架。把它看作是一個GUI框架而不是GUI框架 - 不工作! – 2011-01-05 16:08:32