Ich habe das Argument gehört, dass Sie die allgemeinste verfügbare Schnittstelle verwenden sollten, damit Sie nicht an eine bestimmte Implementierung dieser Schnittstelle gebunden sind. Gilt diese Logik für Schnittstellen wie java.util.Collection ?
Ich würde viel lieber Folgendes sehen:
List<Foo> getFoos()
oder
Set<Foo> getFoos()
Anstatt von
Collection<Foo> getFoos()
Im letzten Fall weiß ich nicht, um welche Art von Datensatz es sich handelt, während ich in den ersten beiden Fällen einige Annahmen über die Reihenfolge und Eindeutigkeit treffen kann. Hat java.util.Collection eine Nützlichkeit, die nicht darin besteht, ein logisches übergeordnetes Element für Mengen und Listen zu sein?
Wenn Sie bei einer Codeüberprüfung auf Code stoßen würden , der Collection verwendet, wie würden Sie feststellen, ob seine Verwendung gerechtfertigt ist, und welche Vorschläge würden Sie für den Ersatz durch eine spezifischere Schnittstelle machen?
Collection<List<?>>
? Sprechen Sie über Coding Horror!