そのインターフェイスの特定の実装に縛られないように、利用可能な最も一般的なインターフェイスを使用すべきだという議論を聞いたことがあります。このロジックはjava.util.Collectionなどのインターフェースに適用されますか?
私はむしろ次のようなものを見たいです:
List<Foo> getFoos()
または
Set<Foo> getFoos()
の代わりに
Collection<Foo> getFoos()
最後のケースでは、どの種類のデータセットを扱っているのかわかりませんが、最初の2つのインスタンスでは、順序付けと一意性についていくつかの仮定を立てることができます。DOES のjava.util.Collectionはセットとリストの両方のための論理的な親であることの有用性の外側を持っていますか?
コードレビューを行うときにCollectionを使用するコードに出くわした場合、その使用法が正当であるかどうかをどのように判断し、より具体的なインターフェイスに置き換えるためにどのような提案をしますか?
Collection<List<?>>
か?コーディングの恐怖について話しましょう!