El nombre (y javadocs) implica que MouseAdapter
es un adaptador (el patrón de diseño). Pero no lo veo como tal, no se adapta nada a nada, a primera vista al menos¿Por qué MouseAdapter es un adaptador?
La única adaptación que ocurre es que se puede pasar una instancia de MouseAdapter
a cualquier método que espere cualquiera de los dos interfaces. Por lo tanto, permite utilizar una instancia MouseListener
donde solo se espera MouseMotionListener
. Pero no hay una "traducción" sucediendo. Y no se ajusta al UML de GoF: en la versión de "adaptador de clase" se espera que una llamada a un método invoque un método del adaptado.
Entonces, ¿es eso un adaptador (patrón de diseño), o es solo un nombre aleatorio que causa confusión?
El problema con este razonamiento es que, como indican otras respuestas, no hay adaptaciones preexistentes en la situación de MouseAdapter. La Motivación del Adaptador GoF (estoy citando el libro GoF) es "A veces, una clase de kit de herramientas diseñada para su reutilización no es reutilizable solo porque su interfaz no coincide con la interfaz específica del dominio que requiere una aplicación". MouseAdapter es un * adaptador * porque se puede adaptar fácilmente (personalizar) para capturar eventos del mouse. GoF Adapter dice que tiene alguna * clase heredada * (kit de herramientas) que no puede cambiar, por lo que adapta su interfaz a las necesidades de su aplicación. – Fuhrmanator