Heute bin ich auf ein grundlegendes Paradoxon des objektorientierten Programmierstils gestoßen: konkrete Typen oder Schnittstellen.
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 flexibler für die weitere Verwendung ist und mehr Funktionalität bietet.
Die Schattenseite der Sache: Die Paarung. Die engelsgleiche: Ein konkreter Typ enthält per se die Schnittstelle, die Sie ursprünglich zurückgeben wollten, und zusätzliche Funktionalität.
Wie lautet Ihre Daumenregel?
Gibt es dafür ein Programmierprinzip?
BONUS : Dies ist ein Beispiel dafür, was ich meine ReadOnlyCollection oder IEnumerable für die Anzeige von Mitgliedersammlungen?