Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Классы из одного метода? 
:(
    Опции темы
 
Как вы относитесь к классам из одного метода?
Это очень хорошо. (причину пожалуйста отпишите внизу) [ 0 ]  [0.00%]
Хорошо. Часто использую? (причину пожалуйста отпишите внизу) [ 0 ]  [0.00%]
Нормально. Иногда приходиться. [ 6 ]  [75.00%]
Не совсем хорошо. Это крайняя мера. [ 1 ]  [12.50%]
Это очень плохо (###код получается) [ 1 ]  [12.50%]
Всего проголосовавших: 8
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
zammar
Дата 13.6.2012, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 30.10.2008

Репутация: нет
Всего: нет



Мой знакомый делает очень много классов.
И некоторые из них состоят тупо из одного метода.

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

Выскажитесь пожалуйста кто что думает
PM   Вверх
Cheloveck
Дата 13.6.2012, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Если это не противоречет ООП, то почему бы и нет. Вот если есть у меня класс Вентилятор, а мне кроме Дуть вообще ничего не нужно, то только этот метод там и будет. А вот если писать по методу в классе только потому, что "дураки из Sun Microsystems" запретили использовать глобальные функции получается ###код.

Это сообщение отредактировал(а) Cheloveck - 13.6.2012, 19:50


--------------------
user posted image
PM Jabber   Вверх
zammar
Дата 13.6.2012, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 30.10.2008

Репутация: нет
Всего: нет



Цитата

Вот если есть у меня класс Вентилятор, а мне кроме Дуть вообще ничего не нужно, то только этот метод там и будет. 



В этой ситуации, да никуда не денешься. Ну а если например есть Человек. У него есть события: прыгнул, дунул, присел, лег, отжался.

Каждый из этих событий содержит от 10 - 200 строк кода. Будете вы их(эти события) выделять в отдельные классы?
PM   Вверх
Skipy
Дата 14.6.2012, 11:19 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 6
Всего: 16



Цитата(zammar @ 13.6.2012,  20:20)
В этой ситуации, да никуда не денешься. Ну а если например есть Человек. У него есть события: прыгнул, дунул, присел, лег, отжался.

Каждый из этих событий содержит от 10 - 200 строк кода. Будете вы их(эти события) выделять в отдельные классы?

А это сильно зависит от того, что мне с этим человеком потом делать. Если бизнес-логика предполагает случайные действия - в каждый следующий момент человек делает что-то случайным образом - можно описать такой интерфейс как "действие" и реализовать его для каждого действия. "Человек" содержит коллекцию "действий", из которых выбирается произвольное.

Однозначного ответа нет. Нужен класс с одним методом - делаем класс с одним методом. Не нужен - не делаем. Нельзя совершенно определенно сказать, что если много классов с одним методом, то код получается хреновый. Может быть ровно наоборот. И точно так же нельзя сказать, что это хорошо - делать много классов с одним методом. Может быть ровно наоборот. Нужно принимать осмысленные решения, исходя из ситуации.


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
Cheloveck
Дата 15.6.2012, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Цитата(Skipy @  14.6.2012,  12:19 Найти цитируемый пост)
можно описать такой интерфейс как "действие" и реализовать его для каждого действия

http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%...BD%D0%B8%D1%8F)


--------------------
user posted image
PM Jabber   Вверх
priam220
Дата 15.6.2012, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



Ну большинство описывает некоторые интерфейсы с одним методом. Интерфейсов с одним методом на самом деле пруд-пруди. Есть даже и вовсе без методов и какого-либо содержания. И это все вполне нормально. 
Но вот обилие классов с одним методом, меня будет настораживать. Хотя вполне допускаю, что имеются такие классы ( даже если не брать в расчет абстрактные ). А если еще этот единственный метод и на все 64 Кб, то я бы побоялся встретиться тет-а-тет с такой нормальностью.
Автору следовало бы описать конекретный подозрительный класс. Тогда разговор принял бы более конкретный характер.

Это сообщение отредактировал(а) priam220 - 15.6.2012, 20:11
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0879 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.