Recentemente ho scoperto un modo interessante per creare una nuova istanza di un oggetto in Google Guava e Project Lombok: Nascondere un costruttore dietro un metodo di creazione statica. Ciò significa che invece di fare new HashBiMap()
, devi fare HashBiMap.create()
.Nascondere un costruttore dietro un metodo di creazione statica?
La mia domanda è perché? Che vantaggio hai di nascondere il costruttore? Per me, non vedo assolutamente alcun vantaggio nel farlo, e sembra violare i principi base della creazione di oggetti. Dall'inizio, crei un oggetto con new Object()
, non con il metodo Object.createMe()
. Sembra quasi come creare un metodo per creare un metodo.
Cosa guadagni da questo?
Nota che riceverai avvertimenti usando il 'nuovo HashBiMap()', in cui non utilizzerai 'HashBiMap.create()'. Questa è la ragione principale per cui Guava usa questo modello, come ho detto nella mia risposta. – ColinD