重複の可能性:
「インターフェイスにプログラムする」とはどういう意味ですか?
まず第一に、インターフェースという用語とJavaのインターフェースには違いがあると思いますが、その違いが何であるかはよくわかりません。
「実装ではなくインターフェイスにプログラムする」と書かれているときの私の最初の質問は、インターフェイスまたはJavaインターフェイスを意味するのですか?
私は真っ先に設計パターンを読んでいて、実装へのプログラムではなく、インターフェイスへのプログラムについて混乱していました。私の理解では、サブクラスは具体的な実装であり、インターフェースはスーパークラス(インターフェースまたは抽象クラスまたは単純クラス)です。
私の 2 番目の質問は、インターフェイスへのプログラムとは、コードが INTERFACE(スーパークラス) にあり、サブクラスがそれを継承したことを意味するということです。そして、彼らがプログラムを IMPLEMENTATION(subclass) と言う場合、コードはサブクラスにありますか?? コードを変更し、コードがサブクラス(具体的な実装)にある場合、すべてのサブクラスコードを変更する必要があるため、「再利用」という用語のためにこれについて考えます。そのインターフェイスのコードを変更するだけです。
インターフェイスへのプログラムの例(簡単にしてください)と実装も役立ちます。
3番目の質問具体的なクラスにプログラムする場合よりもインターフェイスにプログラムする場合の利点は何ですか?