View Single Post
Old 17-01-2015, 15:39   #9
Hybr1d97
Member
 
L'Avatar di Hybr1d97
 
Iscritto dal: May 2014
Messaggi: 63
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
Nel caso tu abbia una moltitudine di oggetti per la quale rispondere allo stesso tipo di evento (fermo restando che avere 200 pulsanti in uno stesso frame non è un caso comune, ma neppure 100, e neppure 50) creare un listener diverso per ogni pulsante sarebbe poco efficiente, visto che devi instanziare parecchi nuovi oggetti.
In tal caso l'unico listener è una soluzione sicuramente preferibile, ma di sicuro non schiaffandoci dentro tutto il codice per ogni singolo caso. Avresti un metodo di centinaia di righe praticamente impossibile da leggere. In quel caso (anche se non mi è mai capitato sinceramente) una soluzione potrebbe essere quella di dividere le azioni dei vari pulsanti in singoli metodi privati dentro l'implementazione del listener, e poi richiamare a seconda del caso il metodo corretto dentro l'override del metodo di interfaccia.

Però vabbè, qui si viaggia con le ipotesi e non smetterò di ripeterlo: il linguaggio dà molti strumenti, sta ad ognuno identificare quale sia quello più idoneo ad un caso o ad un altro, e non ci può essere una soluzione che va bene sempre.
Io personalmente di base uso il metodo 2, e creo una listener diverso per ogni evento... Poi, in base alla situazione specifica improvviso.


Così, come sidestory:
Pensa che su Cocoa (iOS e OSX) la metodologia standard per implementare i delegati (pensali un po' come le interfacce dei listener) è proprio il metodo 1.
Capito, sei stato chiarissimo In sostanza, qualunque sia il caso, è da evitare assolutamente il 4 Poi vabbè, so che 200 pulsanti in un singolo frame sono poco probabili, era solo per sapere cosa è meglio fare nei casi limite. Grazie per le spiegazioni
Hybr1d97 è offline   Rispondi citando il messaggio o parte di esso