Hai due domande: quando dovrei chiamare un getInstance()metodo e quando dovrei crearne uno?
Se stai decidendo se chiamare un getInstance()metodo, è facile. Hai solo bisogno di leggere la documentazione della classe per scoprire quando dovresti chiamarla. Per esempio,NumberFormat fornisce un costruttore e un getInstance()metodo; il getInstance()metodo ti darà un file NumberFormat. Perché Calendar, d'altra parte, il costruttore è protetto. Devi chiamare per avernegetInstance() uno.
Se stai decidendo se creare un getInstance()metodo, devi decidere cosa stai cercando di ottenere. O non vuoi che le persone chiamino il tuo costruttore (stai creando un singleton o una fabbrica ), o non ti dispiace (come NumberFormatsopra, dove stanno inizializzando alcuni oggetti per la comodità del chiamante).
Per farla breve? Non preoccuparti di creare getInstance()metodi nel tuo codice. Se arriverà il momento in cui saranno utili, lo saprai. E in generale, se tu puoi chiamare il costruttore di una classe, probabilmente dovresti farlo, anche se la classe fornisce un getInstance()metodo.