Рефакторинг (1)

  • 14
Пришло время немного порефакторить. Википедия говорит: "Рефакторинг (англ. refactoring) или реорганизация кода - процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы. В основе рефакторинга лежит последовательность небо
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (47)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Katerina
Уровень 28, Тюмень, Россия
20 марта, 19:35
сгорела попытка из за невнимательности написала название метода addChildren, вместо addChild. с начала не очень поняла как это addChild(Human), потом дошло addChild(Human human)
Даниил Александрович
Уровень 35, Тамбов , Россия
14 марта, 07:02
достаточно подробное тз. для gettera подсказка в требованиях
Collections.unmodifiableList
удачи.
Андрей Овчаренко
Уровень 32, Москва
10 марта, 10:39
Двойное нажатие Shift позволить найти все упоминания переменной в проекте
Andrei Po
Уровень 32
13 января, 05:05
1.1. Подъем поля в базовый класс. 1.2. Подъем метода в базовый класс. В Intellij Idea - правый клик на поле / Refactor /Pull Members Up...
Серж
Уровень 32, Омск, Россия
18 апреля, 08:56
спецом сбросил всю задачу до нуля, чтоб отрефакторить через idea
Anton Rahm
Уровень 26, Marburg
18 июня, 07:10
я тоже-нужно ведь закрепить навык!
Maxim Работает в СберТех
10 января, 20:31
Спешка "сожрала" лишнюю попытку 🤦‍♂️ Удалил детей только в классе Teacher, а где-то еще даже и не думал искать.
Lev Moiseev Software Developer в FirstBit
1 января, 20:49
Показалось логичным для методов addChild и removeChild, что результатом должен быть boolean, по аналогии с методами add и remove в коллекции List. Были сомнения на этот счет, поэтому специально внимательно перечитал условия и требования задания на счет прямых указаний или намеков на ожидаемый тип. Безрезультатно. Ответ получил от валидатора - принимает исключительно void.
ivasvi
Уровень 28, Санкт-Петербург
27 марта, 13:50
Такая же фигня. Вроде бы мелочь, но иногда прям подбешивает такое поведение валидатора и составителей условия.
Юрий
Уровень 30, Калининград, Россия
24 ноября 2020, 13:58
children.add(human);
в методе addChild(), аналогично только с remove() в removeChild().... А то я сначала через геттер получал значение коллекции, а потом добавлял в список.... тупил в общем И про unmodifiableList - Метод unmodifiableList () класса java.util.Collections используется для возврата неизменяемого представления указанного списка. Этот метод позволяет модулям предоставлять пользователям доступ «только для чтения» к внутренним спискам, то есть если нужно быть уверенным, что список однажды создастся и не будет изменятся, то применим этот тип коллекций.
Тимур
Уровень 34, Москва, Россия
11 ноября 2020, 21:04
Для перемещения поля children (или любого метода) вверх/вниз (например в суперКласс) Ctrl+Alt+Shift+T, чтобы открыть список рефакторингов, и выбрать 0 (выбрать Pull Members Up) Тут описание https://www.jetbrains.com/help/idea/pull-members-up.html#push_down_example
Евгений
Уровень 27, Санкт-Петербург, Россия
2 августа 2019, 12:42
Очень рекомендую сначала почитать про инструменты рефакторинга в Intellij Idea https://www.jetbrains.com/help/idea/refactoring-source-code.html
Kex
Уровень 38, Тольятти
Expert
20 мая 2020, 10:25
👍
Дмитрий
Уровень 37, Нижний Новгород
31 июля 2019, 16:04
Почему мы возвращаем Collections.unmodifiableList(children), а не просто children? В чем их разница?
Ivan
Уровень 34, Нижний Новгород, Россия
Expert
26 августа 2019, 12:20
Так как мы создаём свои методы addChild(Human) и removeChild(Human), значит мы хотим запретить прямой доступ к модификации нашего листа. Поэтому в гетере возвращаем лист Collections.unmodifiableList(children), который собственно и запрещено изменять. Теперь при попытке изменить возвращённый лист будет вылетать UnsupportedOperationException