Android VelocityTracker не использует конструктор, но если ссылка на объект равна нулю, вы используете variableName = VelocityTracker.obtain()
. Раньше я никогда раньше не видел чего-то подобного на Java. Является ли это стандартным шаблоном проектирования и почему он используется?Почему VelocityTracker не использует конструктор?
0
A
ответ
2
Это заводской метод. (По крайней мере) в Android, obtain()
- это традиционное название метода для классов, которые реализуют рециркуляцию под капотом. Обычно у них есть метод recycle()
, который вы запускаете на объекте, когда он вам больше не нужен (еще один хороший пример - Message
). То есть, они отслеживают пул объектов и, когда возникает необходимость в новом объекте, вы вызываете obtain()
, который может вернуть уже созданный экземпляр вместо выделения памяти для нового.
Смежные вопросы
- 1. Почему конструктор IPAddress использует Int64 вместо UInt32?
- 2. Почему класс Java Pattern использует метод factory, а не конструктор?
- 3. VelocityTracker дает случайные кажущиеся результаты
- 4. Вектор - push_back использует конструктор по умолчанию, а не конструктор копирования
- 5. Почему конструктор не называется?
- 6. Почему конструктор не называется?
- 7. Почему мой код не использует конструктор по умолчанию без параметризации, если определен один конструктор с параметрами?
- 8. Почему этот конструктор, который использует генерические файлы, терпит неудачу?
- 9. C++ полиморфизм использует дочерний конструктор
- 10. Почему PHP 5 использует __contruct() вместо className() как конструктор?
- 11. VelocityTracker вызывает сбои на Android 4.4
- 12. Почему PHP-конструктор метод?
- 13. Почему конструктор преобразования не называется?
- 14. Почему Dart не наследует конструктор?
- 15. Почему конструктор не устанавливает параметр?
- 16. Почему конструктор перемещения не вызван?
- 17. Почему мой конструктор не распознается?
- 18. Почему не вызвал конструктор перемещения?
- 19. Почему конструктор копирования не вызывается?
- 20. Почему не вызывается конструктор move?
- 21. Почему конструктор не получает вызов
- 22. Почему конструктор не может применяться
- 23. почему мой конструктор не работает
- 24. Почему конструктор move не вызван?
- 25. Почему конструктор производного класса использует базовый конструктор по умолчанию в его списке инициализаторов?
- 26. Конструктор даты Javascript использует произвольное время
- 27. Android: VelocityTracker Не удалось открыть '/ dev/touch' (Permission denied)
- 28. Создайте конструктор, который использует другой класс
- 29. Почему конструктор копии C++ не работает?
- 30. Hibernate: Почему не вызывается полный конструктор?
Метод фабрики, он возвращает экземпляр в отличие от использования конструктора –
Возможный дубликат [Что такое статические методы фабрики в Java?] (Http://stackoverflow.com/questions/929021/what-are-static-factory- методы-в-Java) – David