Voglio solo introdurre un modello di osservatore piccolo (ascoltatori) in una delle mie classi e voglio utilizzare l'approccio delle migliori pratiche.Corretto (e migliore) tipo di raccolta per gli ascoltatori in Java
mia interfaccia ascoltatore:
public interface ExpansionListener {
void expanded();
void collapsed();
}
Pertanto, voglio tenere un elenco di ascoltatori
private List listener; // What kind of list should I take?
e due metodi addListener(ExpansionListener l)
e removeListener(ExpansionListener l)
.
Ora, la mia domanda: Che tipo di elenco dovrei prendere? Ho pensato di utilizzare una lista concorrente come CopyOnWriteArrayList, ma ho scoperto che esiste anche EventListenerList. Qual è l'approccio best-practice per listener-lists in Java?
eventListenerList sembra essere un buon candidato – Sanjeev
userei un 'List' per cominciare, se si desidera solo per permettere quel tipo di ascoltatore. Quindi probabilmente andrei con 'CopyOnWriteArrayList' dato che le modifiche agli ascoltatori sono probabilmente poco frequenti, ma le scritture potrebbero verificarsi in parallelo da più thread (solo ipotesi sulla tua architettura). –
Thomas
Un 'Set' sarà più appropriato per impedire a un oggetto di avere più listener dello stesso tipo. – Titus