Tiene dos preguntas: ¿cuándo debo llamar a un getInstance()método y cuándo debo crear uno?
Si está decidiendo si llamar a un getInstance()método, es fácil. Solo necesita leer la documentación de la clase para saber cuándo debe llamarlo. Por ejemplo, NumberFormatproporciona un constructor y un getInstance()método; el getInstance()método le dará un archivo NumberFormat. Porque Calendar, por otro lado, el constructor está protegido. Usted tiene que llamar getInstance()para conseguir uno.
Si está decidiendo si crear un getInstance()método, debe decidir qué está tratando de lograr. O no quiere que la gente llame a su constructor (está creando un singleton o una fábrica ), o no le importa (como en el caso NumberFormatanterior, donde están inicializando algunos objetos para la conveniencia del llamador).
¿Larga historia corta? No se preocupe por crear getInstance()métodos en su propio código. Si llega el momento en que serán útiles, lo sabrás. Y, en general, si puede llamar al constructor de una clase, probablemente se supone que debe hacerlo, incluso si la clase proporciona un getInstance()método.