Heute kam ich zu einem fundamentalen Paradox des Objektprogrammierstils, konkreter Typen oder Interfaces.Konkrete Typen oder Schnittstellen für Rückgabetypen?
Was ist die bessere Wahl für den Rückgabetyp einer Methode: ein konkreter Typ oder eine Schnittstelle?
In den meisten Fällen neige ich dazu, konkrete Typen als Rückgabetyp für Methoden zu verwenden. weil ich glaube, dass ein konkreter Typ für die weitere Verwendung flexibler ist und mehr Funktionalität bietet.
Die dunkle Seite von diesem: Kupplung. Der Engel: Ein konkreter Typ enthält per-se die Schnittstelle, die Sie am Anfang zurückgeben würden, und zusätzliche Funktionalität.
Was ist deine Daumenregel?
Gibt es dafür ein Programmierprinzip?
BONUS: Dies ist ein Beispiel dafür, was ich meine ReadOnlyCollection or IEnumerable for exposing member collections?
Vielen Dank für Ihre Meinung Dominik +1 – SDReyes
Eine 'MyCustomExtendedArrayList' ist spezifischer als' List'. Was würdest du zurückgeben? – BalusC
@BalusC: Hängt davon ab, ob es nur eine andere Implementierung von List oder es bietet einige benutzerdefinierte Methoden. Welchen Sinn würde es machen, eine spezialisierte Klasse zurückzugeben, wenn sie nur durch Casting verwendet werden kann? – Dominik