Attualmente sto scrivendo alcune classi per gestire la localizzazione in un'applicazione web PHP.Come sbarazzarsi di questa dipendenza circolare?
Le classi sono:
- Locale - Si occupa di impostare e ottenere locale, fuso orario, lingua dell'utente.
- LocaleFormat - offerte con le date di formattazione, le regole di confronto, i formati di valuta, ecc
- Timezone - offerte con la compilazione di un elenco dei fusi orari per i paesi e le altre funzioni relative alla fusi orari.
- LocaleData: estrapola dati locali, ad esempio formati di indirizzo e cose come le espressioni regolari del codice postale.
L'intera applicazione funziona correttamente, ma ho bisogno di aggiungere alcune altre cose a Fuso orario.
Questo risultato in questo problema: Locale richiede i metodi del fuso orario che richiede i metodi di LocaleData che richiedono i metodi di Locale.
Come posso interrompere questa dipendenza circolare? Devo rompere le mie lezioni in pezzi più piccoli? Ci sono schemi per affrontare questo?
Saluti :)
Il problema che stavo affrontando era dovuto al fatto che le classi chiamavano il metodo l'una nell'altra. Dal momento che sto usando l'iniezione del costruttore usando un framework DI, le dipendenze sono istanziate dal framework DI. La soluzione è che c'è un metodo in Fuso orario che si comporta più come un formattatore, quindi l'ho spostato in LocaleFormat. – F21