Masz dwa pytania: kiedy należy zadzwonić do getInstance()metody, i kiedy należy utworzyć jeden?
Jeśli decydując czy zadzwonićgetInstance() metoda, to proste. Wystarczy przeczytać dokumentację klasy, aby dowiedzieć się, kiedy należy to wywołać. Na przykład, NumberFormatprzewiduje konstruktora i w getInstance()sposób; getInstance()metoda daje zlokalizowane NumberFormat. Z Calendardrugiej strony konstruktor jest chroniony. Ty masz zadzwonić getInstance(), aby uzyskać jeden.
Jeśli jesteś podejmowaniu decyzji, czy do tworzenia się getInstance()metodę, trzeba zdecydować, co chcesz osiągnąć. Albo nie chcesz, aby ludzie dzwonili do twojego konstruktora (tworzysz singleton lub fabrykę ), albo nie masz nic przeciwko (jak NumberFormatpowyżej, gdzie inicjują niektóre obiekty dla wygody wywołującego).
Krótko mówiąc? Nie martw się o tworzenie getInstance()metod we własnym kodzie. Jeśli nadejdzie czas, kiedy będą przydatne, będziesz wiedział. A w ogóle, jeśli można wywołać konstruktora klasy jest, jesteś prawdopodobnie powinien tego robić, nawet jeśli klasa udostępnia getInstance()metody.