Почему класс Шаблона Java использует метод фабрики, а не конструктора?

Согласно документации gcloud это НЕ возможно

https://cloud.google.com/sdk/gcloud/reference/compute/instances/delete

Имя экземпляра считается уникальным идентификатором. IP-адрес может быть изменен или не назначен, поэтому вы не можете полагаться на него, чтобы изменить или удалить свой экземпляр.

6
задан Basil Bourque 6 March 2018 в 04:45
поделиться

4 ответа

Класс Pattern новее, чем многие другие вещи в JDK. Таким образом, я считаю, что они приняли более современный подход к использованию фабричных методов, а не старый подход публичных конструкторов. На самом деле вы не можете модифицировать фабричные методы для существующих классов.

Вообще говоря, нет особых причин использовать конструктор вместо фабричного метода, поэтому я думаю, что это все, что нужно было сделать. Заводские методы позволяют абстрагироваться от создания объектов, что может быть весьма полезным.

9
ответ дан 8 December 2019 в 05:57
поделиться

Использование фабричного метода для Паттерна также может в конечном итоге позволить использовать реализацию регулярного выражения внешнего модуля. К сожалению, Sun не реализовала ни одну из функций, которые вы могли бы получить при использовании фабричного метода (возможность расширения, кэширование).

2
ответ дан 8 December 2019 в 05:57
поделиться

Зачем вам два экземпляра Pattern одного и того же регулярного выражения? Статический метод создания позволяет реализациям потенциально кэшировать Pattern , иногда возвращающие один и тот же объект, если одно и то же регулярное выражение запрашивается несколько раз. Компиляция паттернов может быть дорогостоящей. Также, если возникнут дополнительные методы компиляции (скажем, с другим синтаксисом), им можно будет дать другие имена вместо слишком перегруженного набора конструкторов.

6
ответ дан 8 December 2019 в 05:57
поделиться

Шаблон статической фабрики используется, когда есть большая вероятность того, что базовая реализация может быть изменена таким образом, чтобы это могло повлиять на конструктор. Короче говоря, factory обеспечивает значительную гибкость для сопровождающего библиотеки, не будучи привязанным к совместимости двоичного кода и исходного кода на стороне конструкции.

См. http://en.wikipedia.org/wiki/Factory_method_pattern для подробности - особенно раздел "Другие преимущества и варианты".

5
ответ дан 8 December 2019 в 05:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: