インターフェイスのリアルタイムアプリケーションとは???
インターフェイスも定義せずに実装されたクラスを作成できます。
たとえば。
インターフェイス動物が 1 匹いて、食べるなどの方法があります。
そこから犬、猫などのさまざまなクラスを実装できます。
しかし、インターフェイスを使用せずに、同じメソッドを使用して同じ犬、猫などのクラスを作成することもできます。
では、なぜインターフェイスを使用するのですか???
コードの大部分から実装を切り離すことができるからです。
古典的な例は、たとえばコレクションList
とそのサブクラスです。次のようなリストを定義できます。
private List<String> list = new ArrayList<>();
...そして、そのコードで 1 回、具象クラス ArrayList だけに言及します。残りの時間list
は、List
インターフェイスである の型で作業しています。何らかの理由で list の別の実装を選択したい場合LinkedList
、または自分のユースケースでうまく機能することがたまたま見つかったサードパーティの実装でさえ、1 つを別の実装に交換するだけの簡単なケースになります。 . 一方ArrayList
、コードのあらゆる場所で使用し、それらすべての型を変更する必要がある場合は、(潜在的に) ArrayList
List インターフェイスにない特定のメソッドを使用することになります。つまり、自分のやり方をリファクタリングする必要があります。そのあたりも。