2015-06-15 7 views
0

Android VelocityTracker не использует конструктор, но если ссылка на объект равна нулю, вы используете variableName = VelocityTracker.obtain(). Раньше я никогда раньше не видел чего-то подобного на Java. Является ли это стандартным шаблоном проектирования и почему он используется?Почему VelocityTracker не использует конструктор?

+0

Метод фабрики, он возвращает экземпляр в отличие от использования конструктора –

+0

Возможный дубликат [Что такое статические методы фабрики в Java?] (Http://stackoverflow.com/questions/929021/what-are-static-factory- методы-в-Java) – David

ответ

2

Это заводской метод. (По крайней мере) в Android, obtain() - это традиционное название метода для классов, которые реализуют рециркуляцию под капотом. Обычно у них есть метод recycle(), который вы запускаете на объекте, когда он вам больше не нужен (еще один хороший пример - Message). То есть, они отслеживают пул объектов и, когда возникает необходимость в новом объекте, вы вызываете obtain(), который может вернуть уже созданный экземпляр вместо выделения памяти для нового.

Смежные вопросы