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

Приёмы рефакторинга. Организация данных кратко

Лекция



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

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

Кроме того, важным моментом является уменьшение связанность между классами, что улучшает переносимость классов и шансы их повторного использования.

Самоинкапсуляция поля

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

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

Замена простого поля объектом

Проблема: В классе (или группе классов) есть поле простого типа. У этого поля есть свое поведение и связанные данные.

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

Замена значения ссылкой

Проблема: Есть много одинаковых экземпляров одного класса, которые можно заменить одним объектом.

Решение: Превратите одинаковые объекты в один объект-ссылку.

Замена ссылки значением

Проблема: У вас есть объект-ссылка, который слишком маленький и неизменяемый, чтобы оправдать сложности по управлению его жизненным циклом.

Решение: Превратите его в объект-значение.

Замена поля-массива объектом

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

Решение: Замените массив объектом, который будет иметь отдельные поля для каждого элемента.

Дублирование видимых данных

Проблема: Данные предметной области программы хранятся в классах, отвечающих за пользовательский интерфейс (GUI).

Решение: Имеет смысл выделить данные предметной области в отдельные классы и, таким образом, обеспечить связь и синхронизацию между классом предметной области и GUI.

Замена однонаправленной связи двунаправленной

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

Решение: Добавьте недостающую связь в класс, в котором она отсутствует.

Замена двунаправленной связи однонаправленной

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

Решение: Уберите неиспользуемую связь.

Замена магического числа символьной константой

Проблема: В коде используется число, которое несет какой-то определенный смысл.

Решение: Замените это число константой с человеко-читаемым названием, объясняющим смысл этого числа.

Инкапсуляция поля

Проблема: У вас есть публичное поле.

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

Инкапсуляция коллекции

Проблема: Класс содержит поле-коллекцию и простой геттер и сеттер для работы с этой коллекцией.

Решение: Сделайте возвращаемое геттером значение доступным только для чтения и создайте методы добавления/удаления элементов этой коллекции.

Замена кодирования типа классом

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

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

Замена кодирования типа подклассами

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

Решение: Для каждого значения закодированного типа, создайте подклассы. А затем, вынесите соответствующие поведения из исходного класса в эти подклассы. Управляющий код замените полиморфизмом.

Замена кодирования типа состоянием/стратегией

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

Решение: Замените кодирование типа объектом-состоянием. При необходимости заменить значение поля с кодированием типа, в него подставляется другой объект-состояние.

Замена подкласса полями

Проблема: У вас есть подклассы, которые отличаются только методами, возвращающими данные-константы.

Решение: Замените методы полями в родительском классе и удалите подклассы.

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

Из статьи мы узнали кратко, но содержательно про приёмы рефакторинга
создано: 2019-01-25
обновлено: 2024-11-14
22



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


Поделиться:

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

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

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

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

Комментарии


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

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

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