web-dev-qa-db-ja.com

アダプタクラスとは何ですか?

グーグルで調べましたが、まだ明確にする必要があります。アダプタークラスとコントローラークラスは似ていますか?そうでない場合、どのような違いがありますか?

親切に説明してください。

18
Naruto

アダプタは、インターフェイスまたは抽象クラスのデフォルト(多くの場合空)実装を提供するパターンです。たとえば、MouseAdapterは、MouseListenerインターフェイスの空の実装を提供します。インターフェースによって宣言されたすべてのメソッドを実際に使用することはほとんどないため、インターフェースを直接実装すると非常に冗長になるため、非常に便利です。

コントローラーは、MVC-Model-View-Controllerパターンの一部です。アダプタとの直接的な関係はありません。

23
AlexR

アダプターの仕事は、主に、異​​なるインターフェースが予想される状況でいくつかのオブジェクトを機能させることです。

(MVCの意味での)コントローラーは、モデルクラスとビュークラスの中間にあるという点で似ていますが、プログラムがどのように動作するかについてより多くの知識を具体化するという点で異なります。コントローラーは、あるインターフェースを別のインターフェースに適合させるだけではありません。

setColor(red, green, blue)メソッドを持つColorクラスがあるとします。 setColor(hue, saturation, value)メソッドを期待するコードもあります。 Colorクラスをラップし、Colorクラスが提供するメソッドに関して期待されるメソッドを実装するアダプタークラスを作成できます。

13
Caleb

アダプタークラス

  • アダプタクラスは、EMPTY実装のみでインターフェースを実装する単純なJavaクラスです。
  • Adapterクラスを拡張する場合、インターフェイスを実装する代わりに、requireメソッドのみに実装を提供します

ex --- Servlet(I)を実装する代わりに、GenericServlet(AC)を拡張する場合、Service()メソッドの実装を提供します。残りのmeyhodの実装を提供する必要はありません。

ジェネリッククラスServlet(I)のADAPTERクラスとして機能します。

5

アダプタークラスは、イベントリスナーインターフェイスのすべてのメソッドの既定の実装を提供します。アダプタークラスは、特定のイベントリスナーインターフェイスによって処理されるイベントのほんの一部を処理する場合に非常に役立ちます。アダプタクラスの1つを拡張して新しいクラスを定義し、関連するイベントのみを実装できます。

4

アダプタクラスは、イベントリスナクラスのすべてのメソッドのデフォルト実装を提供し、メソッドはそのクラスで空のボディで定義されます。そのクラスを継承することで、そのクラスの必須メソッドのみをオーバーライドできます。アダプタクラスにより、コーディングの行数が減りません。

2
Rishabh kumar

すべてのリスナーインターフェイスには1つ以上のメソッドがあります。複数のメソッドを含むインターフェイスにはアダプタークラスがあります...各アダプタークラスには、そのインターフェイスのすべてのメソッドが含まれます。クラスのインターフェイスのメソッドを作成する場合、すべてのメソッドを作成する必要があります...リスナーのインターフェイスの一部には6つ以上のメソッドが含まれています... .soこれらのアダプタークラスをクラスに拡張し、メソッドを記述するため、adaptermethodがオーバーライドされます。..すべてのメソッドを記述するリスクを失う

1
Suraj Sunny

本質的に同じメソッド(つまり、add(ArrayList)ではなくPush(Stack))に異なる名前を付けることにより、別のクラスのメソッドを適応させるクラスは、アダプタークラスと呼ばれます

0
snr

アダプタクラスの利点:

  • クラスがアダプタクラスを拡張する場合、必要ないくつかのメソッドをオーバーライドできます。
  • 特定の状況でのイベントハンドラーの作成を簡素化できます。
  • EventListenerメソッドのすべてのメソッドの空の実装を提供します。
0
user3773990

Android(例)リストのビュー要素を提供するアダプタオブジェクト-したがって、これらは明らかにMVCパラダイムのビュー部分に属します

0