Vorwort nennen:Wie rein virtuelle geschütztes Eigentum
ich eine Komponente haben, lässt es IView nennen. Diese Komponente wird von der BaseView-Klasse implementiert, die die meisten Funktionen enthält. Wir verwenden das Vorlagenmuster, um Logik an Inheretting-Klassen zu delegieren.
Das Problem:
Wir haben eine Eigenschaft namens IView.Visible, dass, wenn die Komponente anzeigt, sollte oder nicht sichtbar sein sollen. Diese Eigenschaft ist nicht virtuell, da es einige Logik in unserem BaseView beinhaltet.
Wir haben eine virtuelle geschützte Methode IsVisible erstellt, die von BaseView.Visible aufgerufen wird, um den endgültigen Wert von IView.Visible zu bestimmen.
Wir glauben, dass dieser Eigenschaftsname, IsVisible, nicht aussagekräftig genug für den Implementierer der abgeleiteten Klasse ist.
Es wurde vorgeschlagen, es in ShuldBeVisible umzubenennen, aber wir füllen immer noch, dass es einen besseren Namen gibt.
Was denkst du? Hast du einen besseren Namen? Gibt es eine gute Namenskonvention, die dieses Thema der Vorlagenmethoden behandelt?
Update: nur einen Punkt zu klären, die Visible und IsVisible Eigenschaften Nebenwirkung nicht auf der Komponente, die Visible-Eigenschaft verwendet den Wert von IsVisible zu entscheiden, ob der Wert von Visible wahr sein sollte , aber es ist nicht die einzige Überlegung und koppelt andere der inneren Zustände der Komponente, um das abschließende Urteil zu geben.
Die vererbende Klasse implementiert die IsVisible-Eigenschaft, die nicht öffentlich, sondern geschützt ist. Die Frage betrifft das IsVisible und seine Beziehung zu Visible. –