Лекция
Привет, Вы узнаете о том , что такое приёмы рефакторинга, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое приёмы рефакторинга, решение задач обобщения, рефакторинг , настоятельно рекомендую прочитать все из категории Теория рефакторинга.
Обобщение порождает собственную группу рефакторинг ов, в основном связанных с перемещением функциональности по иерархии наследования классов, создания новых классов и интерфейсов, а также замены наследования делегированием и наоборот.
Подъем поля
Проблема: Два класса имеют одно и то же поле.
Решение: Переместите поле в суперкласс, убрав его из подклассов.
Подъем метода
Проблема: Подклассы имеют методы, которые делают схожую работу.
Решение: В этом случае нужно сделать методы идентичными, а затем переместить их в суперкласс.
Подъем тела конструктора
Проблема: Подклассы имеют конструкторы с преимущественно одинаковым кодом.
Решение: Создайте конструктор в суперклассе и вынесите в него общий для подклассов код. Вызывайте конструктор суперкласса в конструкторах подкласса.
Спуск метода
Проблема: Поведение, реализованное в суперклассе, используется только одним или несколькими подклассами.
Решение: Переместите это поведение в подклассы.
Спуск поля
Проблема: Поле используется только в некоторых подклассах.
Решение: Переместите поле в эти подклассы.
Извлечение подкласса
Проблема: Класс имеет фичи, которые используются только в определенных случаях.
Решение: Создайте подкласс и используйте его в этих случаях.
Извлечение суперкласса
Проблема: У вас есть два класса с общими полями и методами.
Решение: Создайте для них общий суперкласс и перенесите туда одинаковые поля и методы.
Извлечение интерфейса
Проблема: Несколько клиентов пользуются одной и той же частью интерфейса класса. Об этом говорит сайт https://intellect.icu . Либо в двух классах часть интерфейса оказалась общей.
Решение: Выделите эту общую часть в свой собственный интерфейс.
Свертывание иерархии
Проблема: У вас есть некая иерархия классов, в которой подкласс мало чем отличается от суперкласса.
Решение: Слейте подкласс и суперкласс воедино.
Создание шаблонного метода
Проблема: В подклассах реализованы алгоритмы, содержащие похожие шаги и одинаковый порядок выполнения этих шагов.
Решение: Вынесите структуру алгоритма и одинаковые шаги в суперкласс, а в подклассах оставьте реализацию отличающихся шагов.
Замена наследования делегированием
Проблема: У вас есть подкласс, который использует только часть методов суперкласса или не хочет наследовать его данные.
Решение: Создайте поле и поместите в него объект суперкласса, делегируйте выполнение методов объекту-суперклассу, уберите наследование.
Замена делегирования наследованием
Проблема: Класс содержит множество простых делегирующих методов ко всем методам другого класса.
Решение: Сделайте класс наследником делегата, после чего делегирующие методы потеряют смысл.
Анализ данных, представленных в статье про приёмы рефакторинга, подтверждает эффективность применения современных технологий для обеспечения инновационного развития и улучшения качества жизни в различных сферах. Надеюсь, что теперь ты понял что такое приёмы рефакторинга, решение задач обобщения, рефакторинг и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Теория рефакторинга
Из статьи мы узнали кратко, но содержательно про приёмы рефакторинга
Комментарии
Оставить комментарий
Теория рефакторинга
Термины: Теория рефакторинга