Il nome (e javadocs) implicano che MouseAdapter
è un adattatore (il modello di progettazione). Ma non lo vedo come tale - non adatta nulla a nulla, a prima vista almenoPerché MouseAdapter è un adattatore?
L'unico adattamento che si verifica è che è possibile passare un'istanza di MouseAdapter
a qualsiasi metodo che si aspetta uno dei due interfacce. Pertanto, è possibile utilizzare un'istanza MouseListener
in cui è previsto solo MouseMotionListener
. Ma non c'è nessuna "traduzione" in corso. E non è conforme a UML di GoF - nella versione "adattatore di classe" è previsto che una chiamata a un metodo invochi un metodo dall'adattatore.
Quindi, è un adattatore (modello di progettazione) o è solo un nome casuale che causa confusione?
Il problema con questo ragionamento è, come indicano altre risposte, che non esistono adattamenti preesistenti nella situazione MouseAdapter. La motivazione di GoF Adapter (sto citando il libro GoF) è "A volte una classe di toolkit progettata per il riutilizzo non è riutilizzabile solo perché la sua interfaccia non corrisponde all'interfaccia specifica del dominio richiesta da un'applicazione." MouseAdapter è un * adattatore * perché può essere facilmente adattato (personalizzato) per catturare gli eventi del mouse. GoF Adapter dice che hai * una classe * legacy * (toolkit) che non puoi cambiare, in modo da adattare la sua interfaccia alle necessità della tua applicazione. – Fuhrmanator