powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Почему использовать static-методы "плохо"?
36 сообщений из 36, показаны все 2 страниц
Почему использовать static-методы "плохо"?
    #38626097
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На собеседовании задали такой вопрос.
Вот так вот просто, без контекста.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626163
Фотография Паша01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С подвохом вопрос, если их использовать "плохо", то зачем бы их стали создавать?
Тут я бы просто ответил, все, что знаю про них, где и когда их уместно использовать, все по учебнику, короче.
Также важно, что на static-методы не распространяется полиморфиз, поэтому их часто используют в final-классах.
Ну и все в таком духе.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626181
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таких вопросах, видимо, надо ответить то, что предполагает услышать за ответ автор.
По всей видимости, надо рассказать о случаях, когда такое - плохо.

скорей всего, имеется в виду, что если метод не статический, то ему можно подсунуть другой обьект с другой реализацией, а если зовешь статический - то такого не сделать.
Подсуньте, например вместо Math.sin реализацию, которая бы дополнительно к вычислению синуса считала, сколько раз ее позвали.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626185
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chabapok...
По всей видимости, надо рассказать о случаях, когда такое - плохо.
...


Это и имелось ввиду.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626199
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паша01С подвохом вопрос, если их использовать "плохо", то зачем бы их стали создавать?
Тут я бы просто ответил, все, что знаю про них, где и когда их уместно использовать, все по учебнику, короче.
Также важно, что на static-методы не распространяется полиморфиз, поэтому их часто используют в final-классах.
Ну и все в таком духе.

А что не-static методы нельзя использовать в final-классах???
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626211
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_maxНа собеседовании задали такой вопрос.
Вот так вот просто, без контекста.
Именно методы? Вопрос "почему" не является корректным. Более точным вопросом было бы "Когда...", или "В каких случаях..."
Есть масса примеров, когда без статических методов не обойтись.
А на собеседовании, конечно же стоило рассказать и про полиморфизм и про состояние, а так же единение данных с поведением и прочее ООП.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626219
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

а что про состояние такого рассказать можно?
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626220
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczumka_maxНа собеседовании задали такой вопрос.
Вот так вот просто, без контекста.
Именно методы? Вопрос "почему" не является корректным. Более точным вопросом было бы "Когда...", или "В каких случаях..."
Есть масса примеров, когда без статических методов не обойтись.
А на собеседовании, конечно же стоило рассказать и про полиморфизм и про состояние, а так же единение данных с поведением и прочее ООП.

Ну мне как-то даже и в голову не приходило связывать static и полиморфизм (про статический полиморфизм только сейчас узнал).

А можно подробнее о:
1.
автор...и про состояние, а так же единение данных с поведением и прочее ООП...


2. Хотя бы пару из "массы примеров"?

Мне думается, что это, в принципе, мне известно. Просто хочется убедиться и систематизировать как-то. :)
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626226
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
umka_max,

umka_maxпро статический полиморфизм только сейчас узнал

мне расскажешь? я никогда таких буквосочетаний не встречал
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626231
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_max2. Хотя бы пару из "массы примеров"?
Мне думается, что это, в принципе, мне известно. Просто хочется убедиться и систематизировать как-то. :)
Можно часто столкнуться с ситуацией, что какой-то новый метод не понятно куда бы запихать и тогда его от безысходности пихают в MyBusinessLogicHelper и используют из других методов. Такой метод принимает какие-то объекты, и оперирует их состоянием, нарушая всяческую инкапсуляцию. Так возникает Anemic Domain Model. При правильном дизайне логика находится как можно ближе к состоянию, которым она оперирует. И статические методы имеют право на жизнь лишь в некоторых ограниченных сценариях вроде фабрик.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626233
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerumka_max,

umka_maxпро статический полиморфизм только сейчас узнал

мне расскажешь? я никогда таких буквосочетаний не встречал

Не, не расскажу! :)
Ну может выразился не правильно. Просто в поиске по форуму наткнулся на обсуждение.

http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1082308&msg=15716633
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=740602&msg=8451858

Это еще один вопрос к уважаемому Blazkowicz будет. )))
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626234
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerмне расскажешь? я никогда таких буквосочетаний не встречал
Not static, not final, not private методы являются виртуальными. Вызов нужного метода определяется в рантайме "динамически".
Статический же полиморфизм это, полиморфизм разруливающийся в compile-time - method overload, hiding для static методов и полей.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626235
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626240
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczumka_max2. Хотя бы пару из "массы примеров"?
Мне думается, что это, в принципе, мне известно. Просто хочется убедиться и систематизировать как-то. :)
Можно часто столкнуться с ситуацией, что какой-то новый метод не понятно куда бы запихать и тогда его от безысходности пихают в MyBusinessLogicHelper и используют из других методов. Такой метод принимает какие-то объекты, и оперирует их состоянием, нарушая всяческую инкапсуляцию. Так возникает Anemic Domain Model. При правильном дизайне логика находится как можно ближе к состоянию, которым она оперирует. И статические методы имеют право на жизнь лишь в некоторых ограниченных сценариях вроде фабрик.

Ну это, как бы, само собой разумеется. :)
Просто как-то даже и в голову не приходило, что в таком ключе могут вопрос поставить.
Вот и вводят такие вопросы в ступор.

А по первому пункту?
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626290
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_maxНа собеседовании задали такой вопрос.
Вот так вот просто, без контекста.
Вопрос-провокация. Зачем вообще в java существуют static-методы? По ошибке их
ввели или как?
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626295
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonumka_maxНа собеседовании задали такой вопрос.
Вот так вот просто, без контекста.
Вопрос-провокация. Зачем вообще в java существуют static-методы? По ошибке их
ввели или как?

Ну вот и мне интересно "зачем" они нужны? )))
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626298
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_maxmaytonпропущено...

Вопрос-провокация. Зачем вообще в java существуют static-методы? По ошибке их
ввели или как?

Ну вот и мне интересно "зачем" они нужны? )))
Ты использовал когда-нибудь Math ?
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626306
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonumka_maxпропущено...


Ну вот и мне интересно "зачем" они нужны? )))
Ты использовал когда-нибудь Math ?

Использовал.
И?
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626319
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_maxmaytonпропущено...

Ты использовал когда-нибудь Math ?

Использовал.
И?
Использовал и так и не понял почему там static методы. Ну попробуй представить как-бы ты работал
с синусами каждый раз создавая экземпляр объекта который никому не нужен.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626330
umka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonumka_maxпропущено...


Использовал.
И?
Использовал и так и не понял почему там static методы. Ну попробуй представить как-бы ты работал
с синусами каждый раз создавая экземпляр объекта который никому не нужен.

Таким образом, static-методы нужны для работы с "синусами"?

Осталось ответить на более общий "вопрос-провокацию":
авторЗачем вообще в java существуют static-методы? По ошибке их ввели или как?

Ну вот прям буквально ответить, не задавая встречных вопросов.


Я это все к чему...
Я не придуриваюсь, а просто хочу выяснить правильно ли понимаю предмет.
Ну и заодно понять за каким хером интервьюер задает такие вопросы, которые нужно уточнять? )))

Мне, в принципе, и этого 15938045 хватило. Плюс "синусы", конечно.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626463
organism
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_max,

авторЗачем вообще в java существуют static-методы? По ошибке их ввели или как?

Навскидку как минимум 2 случая:

1. Реализация паттерна "Singleton" (возможно самый показательный)
2. Утилиты для работы, к примеру, со строками или датой, где инстанцирование конкретного экземпляра в принципе не нужно
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626467
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто прогал на Сях тот даже не задаёт подобных вопросов.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626514
Фотография Паша01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
organismНавскидку как минимум 2 случая:
3 случай - это запуск программы, метод main!
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626695
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
native вызовы.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626746
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_maxНа собеседовании задали такой вопрос.
Вот так вот просто, без контекста.
ИМХО, тот, кто спросил скорее всего сам вчера-позавчера вычитал где-нибудь : )
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626761
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_maxНа собеседовании задали такой вопрос.
Вот так вот просто, без контекста.

На какую позицию собеседование?
На сеньора, к примеру, этот вопрос позволяет показать своё чувство красивого. Если оно покажется несовместимым- то это минус. Просто чтобы потом не ругаться :)
Я порассуждал бы на тему кривости идеи запуска программы через main и объектов Scala.

На регуляра- это скорее вопрос "когда можно и нельзя использовать статик методы", типа того же Math. Можно спросить почему random можно сделать не статическим :)

На юниора- без подковырок- Math, main и virtual, плюс то, что static- не ООП.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626838
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_max,

Сейчас модно инжектить (:
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626905
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usmanumka_max,
Сейчас модно инжектить (:
Так говорят те, кто не понимает зачем?
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626909
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczUsmanumka_max,
Сейчас модно инжектить (:
Так говорят те, кто не понимает зачем?

Инъекции- очень сложный инструмент. При неправильном использовании сносит мозги напрочь.
Просто когда возникает вопрос "а что сюда будет вставлено", то ответить на него очень сложно. С другой стороны- если этот вопрос возникает, значит где-то ошибка дизайна :)
И на пути "что это за хрень", "о! давайте везде использовать", "ааааа! оно взрывает мне мозг", "ага, вот как надо" легко на третьем пункте споткнуться и возненавидеть саму идею.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38626944
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominИнъекции- очень сложный инструмент.

Нет.

Alexey TominПри неправильном использовании сносит мозги напрочь.

В чем заключается неправильное использование?

Alexey TominПросто когда возникает вопрос "а что сюда будет вставлено", то ответить на него очень сложно.

Никогда не замечал.

Alexey TominС другой стороны- если этот вопрос возникает, значит где-то ошибка дизайна :)

Это с DI никак не связано.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38627019
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczUsmanumka_max,
Сейчас модно инжектить (:
Так говорят те, кто не понимает зачем?Ну, почему же...
До недавнего времени был любителем всяких Helper/Utils "static" классов (с набором статических методов).
И на очередном этапе проектирования осознал, что это не совсем удобно - теряется гибкость.
IMHO
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38627020
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umka_maxНа собеседовании задали такой вопрос.
Вот так вот просто, без контекста.

Нипочему.
Потому что это не плохо. И не хорошо.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38627347
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Tominumka_maxНа собеседовании задали такой вопрос.
Вот так вот просто, без контекста.

На какую позицию собеседование?
На сеньора, к примеру, этот вопрос позволяет показать своё чувство красивого.
На сеньора на такие вопросы отвечать не нужно. Нужно до собеседования
узнать о чём будет речь, что за спец (какого левела) будет с вами разговаривать
и послать нах заранее если подстава.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38627561
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczAlexey TominИнъекции- очень сложный инструмент.

Нет.


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

BlazkowiczAlexey TominПри неправильном использовании сносит мозги напрочь.

В чем заключается неправильное использование?

Реальная зависимость оказывается больше, чем указанный интерфейс. Если при обычном (вызов конструктора руками) использовании легко выяснить, кто тут будет, то DI затрудняет ответ на этот вопрос.
Но, по-хорошему, этого вопроса не должно возникать.

BlazkowiczС другой стороны- если этот вопрос возникает, значит где-то ошибка дизайна :)

Это с DI никак не связано.[/quot]
Просто DI проявляет эту ошибку. Без него с ней живут годами, не замечая источника проблем.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38627575
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominВременами появляющаяся статьи "это DI только всех запутывает" говорит, что там есть обо что споткнуться.

Таких статей бывает два вида. Либо написаны нубами и не выдерживают никакой критики. Либо написаны экспертами с четким разделением достоинств и недостатков, в которых достоинства всегда более убедительные.

Alexey TominРеальная зависимость оказывается больше, чем указанный интерфейс. Если при обычном (вызов конструктора руками) использовании легко выяснить, кто тут будет, то DI затрудняет ответ на этот вопрос.
Но, по-хорошему, этого вопроса не должно возникать.
Loose coupling. Вопрос должен возникать и это резонно. Но я не могу понять откуда берется проблема определенние экземпляра.

Alexey TominПросто DI проявляет эту ошибку. Без него с ней живут годами, не замечая источника проблем.

Это тоже к DI отношения не имеет. Люди годами пишут говнокод не замечая проблем. Люди такие люди.
...
Рейтинг: 0 / 0
Почему использовать static-методы "плохо"?
    #38628035
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раньше была сложность с созданием mock для static. Сейчас можно создавать mock для static/final/native методов, так что даже с тестированием и подменой особой проблемы нет.
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Почему использовать static-методы "плохо"?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]