Я згоден з відповіддю Дарієна, але хотів додати точку зору з точки зору програмістів C #.
Коли я бачу код, який говорить "setXXX", я прочитав це, щоб сказати, що він встановлює значення на річ, я не очікую, що це має побічні ефекти в цій речі, крім встановлення цього значення, і я очікую, що це буде невмілим (тобто я можу продовжувати встановлювати його з однаковим значенням, і це нормально). Це швидше, як отримати доступ до поля. Як правило, я також розраховував би побачити метод "getXXX" разом із "setXXX".
Я не знаю, чи це те, чого ви очікуєте в Java та C ++, але це те, що я очікував у C #, хоч у C # є короткий посібник для цього під назвою Properties. Ось декілька приємних рекомендацій щодо використання властивостей ( http://msdn.microsoft.com/en-us/library/ms182181.aspx ).
З огляду на такий погляд, інтерфейс, який я б обрав, залежить виключно від наявності будь-яких побічних ефектів (крім зміни цього значення поля):
Якщо у виконання дії є побічні ефекти, наприклад, вона показує діалогове вікно, тоді я б перейшов до "Показати ()" та "Сховати ()".
Якщо у нього немає побічних ефектів, скажіть, що я встановлюю видимість "віджета", а щось інше робить цей віджет залежно від його стану, то я б використовував setVisibility або setIsVisible. (Я б не назвав це SetVisible).
У C # (не впевнений у Java) досить прийнято застосовувати шаблон спостереження, де фреймворк інтерфейсу буде прослуховувати зміни в об'єктах і автоматично відредагуватиме інтерфейс користувача, коли зміниться такий властивість, як Visibility. Це означає, що встановлення значення за допомогою виклику setIsVisible видається так, ніби воно має побічні ефекти, але в моєму визначенні це не так. Контракт віджета виконується, встановивши значення поля, що представляє "IsVisible".
Інакше кажучи, для мене нормально перемикати видимість мітки на формі до того, як форма з’явиться. Тобто label.getIsVisible == вірно, але форма не відображається.
Мені не годиться телефонувати Hide (), коли форма не відображається.