Ho creato oggetti che sono interfacce per un servizio web. Un oggetto tipico sarebbe un "TaskService". Quando un client utilizza uno di questi oggetti, richiama uno dei metodi del servizio (come "GetTasks") e il servizio si spegne in modo asincrono per chiamare il servizio Web remoto e postare i dati recuperati tramite un delegato.Singleton con un delegato: buona idea o cattiva?
Attualmente, per utilizzare uno di questi servizi è necessario crearlo con [[TaskService alloc] init], ma ho deciso che ha più senso rendere ciascun servizio un oggetto singleton.
È comune vedere oggetti singleton che contengono riferimenti ai delegati? Il mio problema principale con il design, è che ogni oggetto, ogni volta che richiede l'uso di un particolare servizio, dovrà impostarsi come delegato prima di richiamare il servizio, il che non mi sembra del tutto corretto ... E se un altro oggetto dovevi porsi come delegato tra te e te stesso come delegato e invocando il servizio?
Molte grazie in anticipo!
saluti, Nick
Non ho idea di cosa sia un multiplexer delegato (autore di una sorta di emittente?), Ma sembra troppo complicato da provare e implementare, quindi cercherò di stare alla larga da qualsiasi cosa del genere! Per implementare una coda di operazioni, avrei ragione nel ritenere che ogni metodo avrebbe dovuto prendere un delegato/parametro come argomento?Quindi le "richieste" potrebbero essere accodate, con i delegati associati da chiamare una volta completati? –
Un multiplexer delegato è un termine che ho appena inventato per il codice che avresti scritto all'interno del tuo singleton per capire a quale delegato inviare un dato risultato. Un operazione potrebbe incapsulare molto meglio ogni operazione (un recupero e una notifica del delegato). Quindi sì, le richieste sarebbero accodate in questo modo. – Rayfleck