Ich habe drei Ansichten in meinem Programm (iOS-App). Es ist immer nur einer von ihnen gleichzeitig aktiv, daher habe ich die Sichtbarkeit für zwei von ihnen deaktiviert und die Sichtbarkeit geändert, während der Benutzer die Tasten drückt. Die Ansichten werden als sichtbar initialisiert, sodass ich die Sichtbarkeit im Code ausschalte, bevor die Hauptansicht angezeigt wird.
ich kann
[view1 setAlpha:0.0f];
[view2 setAlpha:0.0f];
für zwei der Ansichten, aber jetzt ist die dritte (die zu Beginn der App sichtbar sein sollte) nicht angesprochen. Ich habe eine
[view3 setAlpha:1.0f];
nach den ersten beiden, weil ich denke, es hält klar, dass es tatsächlich drei Ansichten gibt, nicht zwei, wie man vielleicht denkt, wenn man den Code sieht. Wie machen andere Programmierer das? Ist es reine Präferenz oder gibt es einige Konventionen?
Wenn der Anruf sehr schwer ist, ist es natürlich besser, ihn nicht anzurufen, wenn dies nicht erforderlich ist, aber ich habe mich über kleine Dinge wie mein Beispiel gewundert.
quelle
setVisibility
nichts unternimmt, wenn die Sichtbarkeit bereits die angeforderte ist, wodurch die Verantwortung nach unten verlagert wird.Alternative Idee: Wenn Ihr Ziel darin besteht, das Auftreten von Fehlern zu verhindern, weil die Leute vergessen, dass es drei Ansichten gibt, und mit nur zwei davon etwas zu tun haben, das sie wirklich mit allen machen sollten, dann machen Sie eine Funktion, die es unmöglich macht, zu vergessen:
Jetzt haben Sie etwas weitaus Stärkeres - Kompilierungszeitgarantien, die Sie nicht vergessen haben . Wenn Sie einen Parameter vergessen, werden Sie vom Compiler angeschrien. Dies ist weitaus nützlicher als Kommentare oder unnötiger Code, da ein streng benanntes Protokoll erstellt wird, das die von Ihnen gewünschte Eigenschaft erzwingt.
Für den Fall,
view3
dass die Sichtbarkeit nicht geändert werden muss, können Sie ein Verhalten hinzufügen, bei dem die Übergabe eines bestimmten Werts wie-1.0
odernil
oder etwas in diese Richtung bedeutet, dass die Sichtbarkeit der Ansicht überhaupt nicht geändert wird. Dies umgeht das Problem des unnötigen Einstellens von Sichtbarkeiten.quelle
Ich würde glauben, dass es am besten ist, einen Kommentar hinzuzufügen, der erklärt, dass der Anruf nicht benötigt wird (und warum).
(Vielleicht ist die Tatsache, dass ein Anruf nicht benötigt wird oder dass Sie einen Kommentar dazu benötigen, ein Codegeruch.)
quelle
In diesem speziellen Fall hat @Mattieu M. die richtige Lösung.
Im allgemeineren Fall, in dem es keine ähnliche Transformation gibt, müssen Sie sich fragen: Gibt es eine Chance, dass ein zukünftiger Programmierer dies vermasselt?
Die Antwort lautet normalerweise ja. Das heißt, ja, Sie sollten den Anruf hinzufügen. Möglicherweise beginnt eine zukünftige Version des Frameworks mit allen Sichten auf OFF anstatt auf ON.
quelle