0

Java の「インターフェース」の概要をここで見ています: http://docs.oracle.com/javase/tutorial/java/IandI/summary-interface.html

最初の行には、「インターフェイスは、2 つのオブジェクト間の通信のプロトコルを定義します」と記載されています。

それは本当に正確ですか?私の理解では、インターフェイスは、任意の数のクライアントが使用できるメンバー/メソッドのセットを提供することを約束する契約にすぎません (アクセス修飾子ごとに適切なアクセス権がある限り)。「2つのオブジェクト間」のインターフェースを作成する契約の「反対側」が欠けていますか?


編集: 回答/コメント (および閉じる投票! :-[ ) から、私はそれを理解したと思います。私は「2 つのオブジェクトの間」に夢中になり、それが「2 つのオブジェクトのみの間」を意味すると仮定していたと思いますが、これは明らかに間違った仮定でした。ありがとう!

4

4 に答える 4

4

私の理解では、インターフェースは、いくつかのメンバー/メソッドのセットを提供することを約束する単なる契約です

これは、プロトコルの定義にかなり近いものです。

于 2013-01-30T19:56:32.500 に答える
2

私はそれを不正確とは呼びません。どちらかといえば、単純化しすぎです。

インターフェイスを実装するオブジェクトを使用できるクライアントの数に制限はありません。さらに言えば、クライアントがオブジェクトである必要はないと言うのは正しいでしょう (クラス内の静的メソッドである可能性があります。つまり、クライアントがオブジェクトであるとは言い難いということです)。しかし、異なるパラダイムを通して考える必要があるとしても、通信のためのプロトコルを定義することについてのポイントは間違っていません。

于 2013-01-30T19:57:31.927 に答える
1

オブジェクトを使用するときは常に、別のオブジェクトから使用します。同時に複数のオブジェクトからメソッドを呼び出さないでください。

したがって、A がインターフェースを提供する場合、B はそれに依存し、C も依存しますが、A は依然として B と C へのインターフェースを別々に提供しています。

于 2013-01-30T19:57:43.347 に答える
0

Interface で定義されたメソッド シグネチャが適用されます。一方にはインターフェースの実装者がいて、他方には実装者を呼び出すクライアントがいます。

于 2013-01-30T19:58:22.457 に答える