Ho bisogno di un modo per tenere traccia delle istanze di varie classi, senza che queste classi abbiano alcuna conoscenza di essere monitorate. Essenzialmente, ho una factory class che crea istanze e le consegna ad un altro thread. Una volta che il thread completa e scarica l'istanza, ho bisogno di essere informato di ciò in modo da poter fare il conteggio dei riferimenti e uscire dal mio factory di classe quando tutte le istanze sono sparite.Ricevi notifica di smaltimento/distruzione di oggetti
La sfida è che non posso modificare nessuna delle classi che caricherò, perché non controllo il loro codice sorgente.
Tenere traccia delle istanze che creo è semplice, posso semplicemente inserirle in una sorta di raccolta mentre le creo. Monitorare la loro distruzione mi sta causando problemi. Se potessi modificare il codice sorgente, aggiungerei un evento a ogni classe e quando creerò un'istanza, collegherei all'evento e usarlo come notifica. Ma non posso farlo.
Quindi, la domanda è questa: c'è un modo subdolo per monitorare un'istanza dell'oggetto e rilevare quando viene distrutta?
+1 È divertente - stavo pensando la stessa identica cosa, fino a quando ho letto la parte in cui diceva che stava controllando la costruzione degli oggetti;) –
Sembra davvero che sia la soluzione più praticabile nella mia situazione, I ' farò un tentativo. –
Mi piace il tuo meglio di Reed perché significa che i clienti di quel tipo non hanno bisogno di sapere di un tipo di decoratore speciale –