2010-10-26 9 views
7

C'è un modo per implementare questo modello in modo generico?C#: esiste un modo generico per inoltrare una chiamata di metodo a un altro oggetto (con la stessa interfaccia)?

Un oggetto dispatcher e un gruppo di oggetti di lavoro derivano tutti dalla stessa interfaccia.

Qualsiasi chiamata di metodo nell'oggetto dispatcher deve essere inviata (inoltrata) a uno degli oggetti worker (con tutti gli argomenti).

Ogni metodo dovrebbe scoprire il proprio nome, trovare il metodo corrispondente negli oggetti worker, scoprire gli argomenti e quindi effettuare la chiamata. Se possibile, non usare il meccanismo degli argomenti variabili.

C'è un modo per farlo? Riflessione? Generazione del codice?

+0

"Iniezione di dipendenza" è il nome giusto per questo :) – Larry

risposta

1

Un possibile approccio consiste nell'avere che ogni metodo nell'oggetto dispatcher genera un evento e che tutti gli oggetti worker si sottoscrivano a quell'evento. (Pensa che questo è chiamato un modello "delegato multicast").

Suppongo che questo potrebbe non essere così "generico" come stai cercando, ma potrebbe essere un modo più semplice per raggiungere principalmente gli stessi fini.

Problemi correlati