グーグルで調べましたが、まだ明確にする必要があります。アダプタークラスとコントローラークラスは似ていますか?そうでない場合、どのような違いがありますか?
親切に説明してください。
アダプタは、インターフェイスまたは抽象クラスのデフォルト(多くの場合空)実装を提供するパターンです。たとえば、MouseAdapter
は、MouseListener
インターフェイスの空の実装を提供します。インターフェースによって宣言されたすべてのメソッドを実際に使用することはほとんどないため、インターフェースを直接実装すると非常に冗長になるため、非常に便利です。
コントローラーは、MVC-Model-View-Controllerパターンの一部です。アダプタとの直接的な関係はありません。
アダプターの仕事は、主に、異なるインターフェースが予想される状況でいくつかのオブジェクトを機能させることです。
(MVCの意味での)コントローラーは、モデルクラスとビュークラスの中間にあるという点で似ていますが、プログラムがどのように動作するかについてより多くの知識を具体化するという点で異なります。コントローラーは、あるインターフェースを別のインターフェースに適合させるだけではありません。
setColor(red, green, blue)
メソッドを持つColorクラスがあるとします。 setColor(hue, saturation, value)
メソッドを期待するコードもあります。 Colorクラスをラップし、Colorクラスが提供するメソッドに関して期待されるメソッドを実装するアダプタークラスを作成できます。
ex --- Servlet(I)を実装する代わりに、GenericServlet(AC)を拡張する場合、Service()メソッドの実装を提供します。残りのmeyhodの実装を提供する必要はありません。
ジェネリッククラスServlet(I)のADAPTERクラスとして機能します。
アダプタークラスは、イベントリスナーインターフェイスのすべてのメソッドの既定の実装を提供します。アダプタークラスは、特定のイベントリスナーインターフェイスによって処理されるイベントのほんの一部を処理する場合に非常に役立ちます。アダプタクラスの1つを拡張して新しいクラスを定義し、関連するイベントのみを実装できます。
アダプタクラスは、イベントリスナクラスのすべてのメソッドのデフォルト実装を提供し、メソッドはそのクラスで空のボディで定義されます。そのクラスを継承することで、そのクラスの必須メソッドのみをオーバーライドできます。アダプタクラスにより、コーディングの行数が減りません。
すべてのリスナーインターフェイスには1つ以上のメソッドがあります。複数のメソッドを含むインターフェイスにはアダプタークラスがあります...各アダプタークラスには、そのインターフェイスのすべてのメソッドが含まれます。クラスのインターフェイスのメソッドを作成する場合、すべてのメソッドを作成する必要があります...リスナーのインターフェイスの一部には6つ以上のメソッドが含まれています... .soこれらのアダプタークラスをクラスに拡張し、メソッドを記述するため、adaptermethodがオーバーライドされます。..すべてのメソッドを記述するリスクを失う
本質的に同じメソッド(つまり、add(ArrayList)ではなくPush(Stack))に異なる名前を付けることにより、別のクラスのメソッドを適応させるクラスは、アダプタークラスと呼ばれます
アダプタクラスの利点:
Android(例)リストのビュー要素を提供するアダプタオブジェクト-したがって、これらは明らかにMVCパラダイムのビュー部分に属します