Il mio progetto incorpora una piccola astrazione del database, per cui implemento ciascun database come Singleton (beh, uno object
), con metodi personalizzati sul database per le operazioni che eseguono il codice (è principalmente un parser di log, che scarica statistiche interessanti per un database).In Scala, come potrei dare a Singleton un costruttore?
Mi piacerebbe costruire le classi di database Singleton se possibile, in modo tale che in fase di esecuzione, ciascuna sia costruita con valori di configurazione (e tali valori rimangano costanti per il resto del runtime del programma). Questo mi permetterebbe di testare meglio il codice (dato che posso prendere in giro i database usando Mockito o altri).
Sto ancora imparando solo Scala, ma sembra che non ci sia modo di collegare un costruttore a un Singleton e apprezzare qualsiasi input su questo problema - c'è un modo migliore per fare quello che sto facendo? C'è un modo preferito di costruire un Singleton?
Applausi in anticipo per qualsiasi aiuto.
Grazie mucchio per la pronta risposta. La mia preoccupazione è che voglio passare argomenti al costruttore. Ripensandoci però, mi sto rendendo conto di cosa sia uno sporco trucco. Dovrò riconsiderare il mio progetto. – frio
Sì, è un hack. I singleton sono uno stato globale e il punto di Scala è consentire l'elaborazione parallela invisibile. Questo significa che non puoi avere uno stato globale. – fishtoprecords
@frio, potrebbe essere significativo ricordare che il costruttore oggetto (corpo) non viene eseguito fino a quando non si fa riferimento all'oggetto o ai suoi contenuti (campi o metodi) che forniscono una certa misura del controllo sulla costruzione dell'oggetto. –