効果的な Java は、抽象/具象クラスではなくインターフェイスの使用を奨励します。質問は、インターフェイス階層があるかどうか、どのインターフェイス タイプを選択する必要があるか、またその理由は何ですか?
たとえば、をArrayList
実装するList
を実装するCollection
を実装しIterable
ます。list
では、いつvs collection
vsを渡すのiterable
でしょうか?
明らかな答えは、各サブクラスがより多くの機能を追加し続けることです。では、必要な機能が一致するまで、階層を上っていく必要がありますか? つまり、架空のアプリケーションでのみiterator()
必要な場合は、Iterable
else use を使用しますList
か?