У вас є два питання: коли я повинен подзвонити в getInstance()метод, і коли я повинен створити один?
Якщо ви вирішуєте , можна назватиgetInstance() метод, це легко. Вам просто потрібно прочитати документацію до класу, щоб з’ясувати, коли вам слід її викликати. Наприклад, NumberFormatнадає конструктор і на getInstance()метод; getInstance()метод дасть вам локалізовані NumberFormat. З Calendarіншого боку, конструктор захищений. Вам потрібно зателефонувати, getInstance()щоб отримати його.
Якщо ви вирішуєте , слід створити в getInstance()метод, ви повинні вирішити , що ви намагаєтеся досягти. Або ви не хочете, щоб люди викликали ваш конструктор (ви створюєте синглтон або фабрику ), або ви не проти (як це було NumberFormatвище, де вони ініціалізують деякі об’єкти для зручності абонента).
Довга історія? Не хвилюйтеся про створення getInstance()методів у власному коді. Якщо настане час, коли вони стануть у нагоді, ви дізнаєтесь. І взагалі, якщо ви можете викликати конструктор класу, ви, мабуть, повинні це робити, навіть якщо клас надає getInstance()метод.