Mam problem ze zrozumieniem tak zwanych metod wytwórczych.
Nie rozumiem z jakiego powodu używa się metod statycznych do tworzenia nowych instancji klasy, zamiast zrobić to jawnie z konstruktorem.
Dla przykładu mam taki kod:
NumberFormat nf = NumberFormat.getCurrencyInstance();
double x = 0.1;
System.out.println(nf.format(x));
Z tego co się kiedyś dowiedziałem (możliwe, że tutaj na forum), to klasa NumberFormat
ma prywatny konstruktor a nowa instancja powstaje po wywołaniu metody getCurrencyInstance
.
Dlaczego nie odbywa się to za pomocą ogólnie dostępnego konstruktora tylko jest on prywatny?
Doczytałem w książce, że chodzi o ograniczenia przez które nie można utworzyć dwóch takich samych konstruktorów, ale nie rozumiem jak to się odnosi do podanego przykładu.