Sono d'accordo con la risposta di Darien, ma volevo aggiungere un punto di vista da una prospettiva di programmatori C #.
Quando vedo il codice che dice 'setXXX' leggo che per dire che sta impostando un valore su una cosa, non mi aspetto che questo abbia effetti collaterali in quella cosa oltre a impostare quel valore, e mi aspetto questo essere idempotente (cioè posso continuare a impostarlo con lo stesso valore e va bene). È piuttosto come accedere a un campo. In genere mi aspetto anche di vedere un metodo 'getXXX' insieme a un 'setXXX'.
Non so se questo è quello che ti aspetti da Java e C ++, ma è quello che mi aspetterei in C #, anche se in C # c'è una mano breve per questo chiamato Proprietà. Ecco alcune utili indicazioni su come utilizzare Proprietà ( link ).
Dato questo punto di vista, l'interfaccia che selezionerei dipende puramente se ci sono effetti collaterali (oltre a cambiare il valore del campo):
Se l'azione ha effetti collaterali, ad esempio mostra una finestra di dialogo, quindi andrei con "Mostra ()" e "Nascondi ()".
Se non ha effetti collaterali, diciamo che sto impostando la visibilità di un "widget" e qualcos'altro restituisce quel widget a seconda del suo stato, quindi userei setVisibility o setIsVisible. (Non lo chiamerei SetVisible).
In C # (non sono sicuro di Java) è piuttosto comune adottare un pattern di osservatore, in cui un framework dell'interfaccia utente ascolterà le modifiche agli oggetti e re-render automaticamente l'interfaccia quando una proprietà come Visibility cambia. Ciò significa che l'impostazione del valore chiamando setIsVisible appare come se avesse effetti collaterali, ma nella mia definizione non lo fa. Il contratto del widget è soddisfatto impostando il suo valore di campo che rappresenta "IsVisible".
In altre parole, per me è giusto abilitare la visibilità di un'etichetta su un modulo prima che venga visualizzato il modulo. IE label.getIsVisible == true, ma il modulo non è mostrato.
Non è corretto per me chiamare Hide () quando il modulo non viene mostrato.