2012-01-12 2 views
5

Nei giorni del college, non mi sono mai reso conto di quali fossero i pattern presenti nell'API Java. Ora sul posto di lavoro mi sono imbattuto in Delega in Objective C n Cocoa su iOS, in cui uno schermo si imposta come un delegato sullo schermo successivo in modo che lo schermo possa passare un messaggio a quel delegato e può intervenire quando ritorna al schermata precedente.ActionListener è un esempio di modello di delega?

Mi rendo conto che uso qualcosa di simile quando passavo "questo" come ActionListener [implementando l'interfaccia] a un JButton e chiamava automaticamente actionPerformed implementato da me in questa classe e quindi potevo cambia i dati di istanza nella mia classe JFrame.

Quindi ActionListener è un esempio di delegato Se sono corretto?

MODIFICA: come correttamente indicato di seguito, è il modello di Osservatore. Non impostiamo ActionListener ne aggiungiamo uno. Quindi ci possono essere molti ascoltatori per quell'azione.

risposta

6

ActionListener è un esempio di observer pattern. Si registrano osservatori (o ascoltatori) su un componente che viene chiamato quando si verifica un evento specifico.

+0

Questo è corretto. Prima di cancellare il mio post ho menzionato il suo schema di comando. Non è. L'azione è, ma non ActionListener. – Xorty

+0

Ma posso impostare solo un osservatore per JButton. non molti. Abbiamo il metodo setActionListener non addActionListener per aggiungerne molti. –

+1

i miei JButtons hanno metodi addActionListener. La tua vergogna è limitata. – MeBigFatGuy