3 Stimmen

Generische Schnittstellenvererbung (Designproblem)

Ich habe zwei Schnittstellen; ISet y ISet<T>

Beide implementieren Add, Remove und Clear, jedoch mit unterschiedlichen Argumenttypen: object und T.

Jetzt habe ich zwei Möglichkeiten. Entweder lassen ISet<T> erben von ISet oder lassen Sie sie voneinander isoliert werden.

Ein großer Vorteil der ISet<T> erben von ISet ist natürlich, dass ich immer eine ISet<T> wo auch immer ich etwas brauche ISet . Aber dabei muss ich auch den "neuen" Modifikator zu den Stäben mit einem T-Parameter hinzufügen. Ich mag den "new"-Modifikator nicht so sehr, aber vielleicht ist das in diesem Fall die bessere Option?

Es fühlt sich seltsam an, eine ISet<T> die nicht auch eine ISet . Das ist die logische Schlussfolgerung. Ich kann gar nicht genau sagen, warum ich den "new"-Modifikator nicht mag. Es ist wie mit dem "goto"-Schlüsselwort. Ich versuche einfach, ihn nicht zu benutzen.

Was sollte ich Ihrer Meinung nach hier tun? Vererben oder nicht?


In .NET haben wir ICollection<T> y ICollection die nicht vererbt wird. Auch nicht IList<T> y IList . Aber IEnumerable<T> erben von IEnumerable .


Ich weiß von der ISet-Schnittstelle, die bereits existiert (dies war nur ein Beispiel)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X