Questa domanda riguarda principalmente il modo migliore per affrontare questo problema. Qualsiasi input è apprezzato.
Il problema
Nella mia applicazione ho bisogno di inviare alcuni dati a un certo numero di destinazioni diverse (li chiameremo ricevitori da ora in poi) usando diversi protocolli (http post, ftp, soap services). Ciascuno dei diversi ricevitori risponde in modo diverso e deve essere eseguita qualche elaborazione su ciascuna risposta per capire cosa è successo. Questa elaborazione della risposta può diventare piuttosto complessa.
Anche la mia applicazione deve compiere diverse azioni basate sul ricevitore.
La mia soluzione
Il mio piano è quello di creare una classe separata per ciascun ricevitore che implementa un'interfaccia e utilizzare il modello di progettazione di fabbrica per decidere quale classe caricare in base al ricevitore. Ogni ricevitore ha un nome univoco (che viene memorizzato nel database per altri motivi) che ho intenzione di utilizzare per decidere quale destinatario caricare. Passerò questo al costruttore di fabbrica.
Attualmente ho intenzione di avere la mia interfaccia per implementare questi metodi
- prepareData ()
- sendData ()
- handleResult ()
Mi piacerebbe anche un wrapper per queste funzioni come process () che restituirebbe semplicemente un booleano basato sulla mandata inviata. Non sono sicuro di dove vorrei inserire questo.
Grazie