J'ai trois vues dans mon programme (application iOS). Un seul d'entre eux étant toujours actif en même temps, je désactive la visibilité pour deux d'entre eux et change de visibilité lorsque l'utilisateur appuie sur les boutons. Les vues étant initialisées comme visibles, je désactive la visibilité dans le code avant l'affichage de la vue principale.
Je peux faire
[view1 setAlpha:0.0f];
[view2 setAlpha:0.0f];
pour deux des vues, mais maintenant la troisième (celle qui devrait être visible au début de l'application) n'est pas adressée. Je mets un
[view3 setAlpha:1.0f];
après les deux premiers, parce que je pense que cela montre clairement qu'il y a en fait trois points de vue, pas deux comme on pourrait le penser quand on voit le code. Comment les autres programmeurs font-ils cela? Est-ce purement une préférence ou y a-t-il des conventions?
Si l'appel est très lourd, il est évidemment préférable de ne pas l'appeler quand ce n'est pas nécessaire, mais je m'interrogeais sur de petites choses comme mon exemple.
la source
setVisibility
à ne rien faire si la visibilité est déjà celle demandée, ce qui diminue la responsabilité.Idée alternative: si votre objectif est d'empêcher l'apparition de bugs parce que les utilisateurs oublient trois vues et agissent avec deux vues seulement, ils doivent en faire une, puis créez une fonction qui rend impossible d'oublier:
Maintenant, vous avez quelque chose de beaucoup plus puissant - Compiler le temps vous garantit que vous n’avez pas oublié . Si vous oubliez un paramètre, le compilateur vous hurle dessus. Ceci est bien plus utile que les commentaires ou le code inutile, car il crée un protocole nommé strict qui applique la propriété qui vous tient à cœur.
Pour le cas où
view3
n'a pas besoin de sa visibilité a changé, vous pouvez ajouter un comportement où passer une valeur spéciale comme-1.0
ounil
ou quelque chose le long de ces moyens lignes « ne changent pas la visibilité de vue du tout ». Cela contourne le problème de la définition de visibilités inutilement.la source
Je pense que l'ajout d'un commentaire expliquant que l'appel n'est pas nécessaire (et pourquoi) est préférable.
(peut-être que le fait qu'un appel ne soit pas nécessaire ou que vous ayez besoin d'un commentaire à ce sujet pourrait être une odeur de code)
la source
Dans ce cas particulier, @Mattieu M. a la bonne solution.
Dans le cas plus général, où il n'y a pas de transformation similaire, vous devez vous poser la question suivante: y a-t-il une chance qu'un futur programmeur puisse gâcher cela?
La réponse est généralement oui. Ce qui signifie, oui, vous devriez ajouter l'appel. Peut-être qu'une version future du cadre commence avec toutes les vues désactivées au lieu de activées.
la source