Come denominare un tipo di funzione chiamato da un evento, ma non gestisce l'evento? [chiuso]

1

Come si chiamerebbe un tipo di funzione chiamato da un certo evento? Le istanze di questo tipo di funzione verrebbero richiamate quando viene premuto un determinato tasto. Non è strettamente un tipo di gestore di eventi, perché non deve gestire l'evento. Potrebbe semplicemente voler essere consapevole dell'evento. Possono esserci più funzioni con questo tipo che ascoltano lo stesso evento di battitura.

Al momento sto usando SpecificKeystrokeListener anche se questo non è proprio corretto in quanto non ascolta, è solo una notifica.

Per quello che vale, sto usando Rust - anche se questo vale anche per altre lingue. Ad esempio:

type ResetFn = fn (this: *const device) -> ReturnStatus;

    
posta Jeroen Bollen 08.10.2014 - 21:22
fonte

3 risposte

3

La convenzione in Windows è

ObjectName_EventName

Esempio:

ProductSelector_Click()

È fatto in questo modo in Windows (.NET, in particolare), perché segue una firma generica che ti permette di fare passare il messaggio:

public void ProductSelector_Click(object sender, EventArgs e)

Detto questo, se il tuo metodo è semplicemente un delegato o una funzione di prima classe (e non hai bisogno del tipo di "patching" fornito qui), puoi praticamente nominarlo come vuoi.

Più in generale, questo modello software è chiamato "Observer".

    
risposta data 08.10.2014 - 21:27
fonte
0

Dato il modo in cui OP è formulato penso che stia cercando "Sottoscrittore", anche se quel moniker è più spesso usato negli scenari di sottoscrizione di Publish. Tradizionalmente nelle librerie di gestione degli eventi sono chiamati "ascoltatori" (come dimostra lo snippet del codice OP), ma le descrizioni del pattern Observer utilizzano "Sottoscrittore", ad esempio, qui: link

Vedi link per una discussione delle differenze tra questi modelli.

    
risposta data 09.10.2014 - 12:19
fonte
0

Se la funzione ascolta un evento e poi chiama un'altra funzione per gestirlo, chiamerei quella funzione [Event] Dispatcher (sostituisci [Event] con il nome dell'evento. Pensa ai vecchi dispatcher telefonici che chiami in e chiedere di essere collegato a così e così. Sembra che si adatti perfettamente a quello che stai facendo.

    
risposta data 09.10.2014 - 16:30
fonte

Leggi altre domande sui tag