Zgadzam się z odpowiedzią Dariena, ale chciałem dodać punkt widzenia z perspektywy programistów C #.
Kiedy widzę kod z napisem „setXXX”, czytam to, aby ustawić wartość dla rzeczy, nie oczekuję, że będzie to miało skutki uboczne w tej rzeczy innej niż ustawienie tej wartości, i spodziewam się, że będzie to idempotentne (tzn. mogę nadal ustawiać tę samą wartość i jest w porządku). To raczej jak dostęp do pola. Generalnie spodziewałbym się również zobaczyć metodę „getXXX” wraz z „setXXX”.
Nie wiem, czy tego się spodziewasz w Javie i C ++, ale tego oczekiwałbym w C #, choć w C # jest krótka ręka dla tego o nazwie Właściwości. A oto kilka dobrych wskazówek na temat korzystania z właściwości ( http://msdn.microsoft.com/en-us/library/ms182181.aspx ).
Biorąc pod uwagę ten widok, wybór interfejsu zależy wyłącznie od tego, czy występują jakieś skutki uboczne (inne niż zmiana tej wartości pola):
Jeśli wykonanie akcji ma skutki uboczne, na przykład pokazuje okno dialogowe, wybrałbym „Show ()” i „Hide ()”.
Jeśli nie ma efektów ubocznych, powiedzmy, że ustawiam widoczność „widżetu”, a coś innego renderuje ten widżet w zależności od jego stanu, wtedy użyłbym setVisibility lub setIsVisible. (Nie nazwałbym tego SetVisible).
W języku C # (nie jestem pewien co do Javy) dość często przyjmuje się wzorzec obserwatora, w którym struktura interfejsu użytkownika będzie nasłuchiwać zmian w obiektach i automatycznie ponownie renderuje interfejs użytkownika, gdy zmieni się właściwość, taka jak Widoczność. Oznacza to, że ustawienie wartości przez wywołanie setIsVisible wygląda tak, jakby miało skutki uboczne, ale w mojej definicji tak nie jest. Kontrakt widżetu jest wypełniany poprzez ustawienie jego wartości pola reprezentującej „IsVisible”.
Innymi słowy, w porządku jest dla mnie przełączanie widoczności etykiety na formularzu przed wyświetleniem formularza. Tj. Label.getIsVisible == true, ale formularz nie jest wyświetlany.
Wywoływanie Hide () nie jest w porządku, gdy formularz nie jest wyświetlany.