Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Приёмы рефакторинга. Решение задач обобщения кратко

Лекция



Привет, Вы узнаете о том , что такое приёмы рефакторинга, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое приёмы рефакторинга, решение задач обобщения, рефакторинг , настоятельно рекомендую прочитать все из категории Теория рефакторинга.

Обобщение порождает собственную группу рефакторинг ов, в основном связанных с перемещением функциональности по иерархии наследования классов, создания новых классов и интерфейсов, а также замены наследования делегированием и наоборот.

Подъем поля

Проблема: Два класса имеют одно и то же поле.

Решение: Переместите поле в суперкласс, убрав его из подклассов.

Подъем метода

Проблема: Подклассы имеют методы, которые делают схожую работу.

Решение: В этом случае нужно сделать методы идентичными, а затем переместить их в суперкласс.

Подъем тела конструктора

Проблема: Подклассы имеют конструкторы с преимущественно одинаковым кодом.

Решение: Создайте конструктор в суперклассе и вынесите в него общий для подклассов код. Вызывайте конструктор суперкласса в конструкторах подкласса.

Спуск метода

Проблема: Поведение, реализованное в суперклассе, используется только одним или несколькими подклассами.

Решение: Переместите это поведение в подклассы.

Спуск поля

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

Решение: Переместите поле в эти подклассы.

Извлечение подкласса

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

Решение: Создайте подкласс и используйте его в этих случаях.

Извлечение суперкласса

Проблема: У вас есть два класса с общими полями и методами.

Решение: Создайте для них общий суперкласс и перенесите туда одинаковые поля и методы.

Извлечение интерфейса

Проблема: Несколько клиентов пользуются одной и той же частью интерфейса класса. Об этом говорит сайт https://intellect.icu . Либо в двух классах часть интерфейса оказалась общей.

Решение: Выделите эту общую часть в свой собственный интерфейс.

Свертывание иерархии

Проблема: У вас есть некая иерархия классов, в которой подкласс мало чем отличается от суперкласса.

Решение: Слейте подкласс и суперкласс воедино.

Создание шаблонного метода

Проблема: В подклассах реализованы алгоритмы, содержащие похожие шаги и одинаковый порядок выполнения этих шагов.

Решение: Вынесите структуру алгоритма и одинаковые шаги в суперкласс, а в подклассах оставьте реализацию отличающихся шагов.

Замена наследования делегированием

Проблема: У вас есть подкласс, который использует только часть методов суперкласса или не хочет наследовать его данные.

Решение: Создайте поле и поместите в него объект суперкласса, делегируйте выполнение методов объекту-суперклассу, уберите наследование.

Замена делегирования наследованием

Проблема: Класс содержит множество простых делегирующих методов ко всем методам другого класса.

Решение: Сделайте класс наследником делегата, после чего делегирующие методы потеряют смысл.

Анализ данных, представленных в статье про приёмы рефакторинга, подтверждает эффективность применения современных технологий для обеспечения инновационного развития и улучшения качества жизни в различных сферах. Надеюсь, что теперь ты понял что такое приёмы рефакторинга, решение задач обобщения, рефакторинг и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Теория рефакторинга

Из статьи мы узнали кратко, но содержательно про приёмы рефакторинга
создано: 2019-01-25
обновлено: 2021-03-13
132265



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


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

Теория рефакторинга

Термины: Теория рефакторинга