У меня есть простой вопрос. У меня есть класс, который не имеет каких-либо переменных, это просто класс, который имеет много функций void (которые отображают вещи и т. Д.). Когда я создаю объект этого класса, было бы лучше/эффективнее передавать этот один объект через все мои функции по мере продвижения программы или просто воссоздавать его каждый раз, когда программа переходит в новую функцию? Имея в виду, что объект не имеет переменных, которые необходимо сохранить. Заранее благодарю за любую помощь.Пропустить объект через или Создать новый объект?
ответ
Имеет смысл, что класс имеет только статические функции и никакой экземпляр вообще не нужен. В любом случае у вас нет штата ...
Черт, без каких-либо переменных в этом классе, в базовом смысле это набор статических функций. Единственное, что вы делаете, это скрывать эти функции от других, в зависимости от того, как объявлен класс. Согласовано. –
Хорошо, как статический класс, как бы я назвал функции класса? –
Большое спасибо, ребята, не подумали об этом. –
Для проблем с производительностью почти нет разницы. Передача объекта в качестве аргумента будет стоить вам (очень крошечный) бит во время выполнения. Объект воссоздания не будет (предполагая оптимизацию компилятора).
Однако, если вы когда-либо планируете ввести какое-либо состояние (поля) или имеете две реализации для тех методов void
, вы должны передать объект, так как это значительно снижает стоимость рефакторинга.
Подведите итог: если ваш класс - это что-то вроде Math
, где методы безгражданны по своей природе, придерживайтесь @Amit ответа и ставьте его. В противном случае, если ваш класс - это что-то вроде Canvas
или Windows
, и у вас есть мысли о его внедрении другим способом позже, лучше передайте его по ссылке, чтобы вы могли заменить его абстрактным интерфейсом и обеспечить фактическую реализацию.
Если функции в пустом классе иначе никогда не меняются ... рассмотрим их статичность. или помещать их в пространство имен вместо класса.
с другой стороны ... если функции установлены один раз во время выполнения, например, вы выбираете, какие функции отображения использовать на основе os, а затем сохраняйте их в глобальном. или одноэлементный.
на захватной руке ... если функции различны для разных частей большего кода ... тогда да, вам нужно каким-то образом доставить его к тем функциям, которые ему нужны. следует ли вам создавать один раз и проходить много раз - или передавать никогда и создавать по мере необходимости, действительно зависит от специфики вашего приложения. извините, здесь нет универсального ответа.
- 1. copy.deepcopy или создать новый объект?
- 2. Пропустить объект через dataTransfer
- 3. Mockito пропустить новый объект вызова
- 4. Пропустить сериализуемый объект через цель
- 5. Создать объект, используя новый $
- 6. Пропустить сложный объект через http
- 7. создать новый объект? или повторно использовать существующий?
- 8. Как пропустить объект javascript и скопировать значения в новый объект
- 9. Невозможно создать новый объект
- 10. Пропустить объект TIME через комплект
- 11. Пропустить PHP-объект через AJAX
- 12. ли resourceResolver.adaptTo создать новый объект или возвращать кэшированные объект
- 13. создать новый объект или повторно использовать его
- 14. java: использовать существующий объект или создать новый?
- 15. js создать новый объект-объект в $ .each
- 16. Лучше ли создать новый объект и вернуть его или создать новый объект в операторе return?
- 17. Создать новый объект в угловом
- 18. Локальный новый объект или глобальный статический объект
- 19. Force gson создать новый объект
- 20. Создается новый объект или нет?
- 21. Создать новый глобальный объект jQuery
- 22. создать новый объект в JSON
- 23. Создать ссылку на новый объект
- 24. Как создать новый объект ITLibMediaItem?
- 25. Как создать новый объект структуры?
- 26. Создать новый объект, используя отражение?
- 27. Невозможно создать новый объект javascript
- 28. Джанго UpdateView создать новый объект
- 29. Пропустить объект через NodeJS в PHP
- 30. Пропустить объект через ui-router к контроллеру
сделать класс статическим. Если все, что вы делаете, вызывает функции на нем, вы делаете что-то вроде Math.cos(); – t3dodson
См. Также http://stackoverflow.com/questions/2671496/java-when-to-use-static-methods –