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

Написание чистого кода — очень важный навык, который может выделить вас среди конкурентов.

1. Единственная ответственность

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

Преимущества использования СРП

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

  • Это упрощает контроль версий — например, когда вы работаете в команде или над большими проектами, несколько разработчиков должны работать над одними и теми же файлами, если следовать SRP, будет одна причина, по которой файл будет изменен, и другие люди смогут понять это быстро.
  • Это также приводит к меньшему количеству конфликтов при объединении кода от разных разработчиков, так как есть одна причина для изменения, и конфликты легче разрешать.
  • Ваш код выглядит чистым, что упрощает его проверку, а отладка чистого кода может минимизировать время устранения ошибок.
  • Вводить новые изменения также легко, так как вы будете в курсе всех классов и того, что они делают.

2. Открыто/Закрыто

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

Преимущества использования открытого/закрытого принципа-

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

3. Замена Лискова

Принцип замещения Лисков гласит, что экземпляр родительского класса можно заменить экземпляром дочернего класса. Проще говоря, переопределенный метод подкласса должен принимать те же значения входных параметров, что и метод суперкласса.

Преимущества использования замены Лискова

  • Более читаемый код
  • Без ошибок, чистый код

4. Разделение интерфейса

Разделение интерфейсов просто означает, что более крупные интерфейсы должны быть разделены на несколько более мелких.

Преимущества разделения интерфейса

  • Таким образом, мы можем гарантировать, что реализующие классы должны заботиться только о тех методах, которые их интересуют.
  • Это не позволяет классам реализовывать только необходимые методы.

5. Инверсия зависимости

Модули высокого уровня, которые обеспечивают сложную логику, должны легко повторно использоваться в модулях низкого уровня. Для этого вам необходимо ввести абстракцию, которая отделяет модули высокого и низкого уровня друг от друга.

Преимущества инверсии зависимостей

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

Если вы найдете эту статью полезной, хлопните в ладоши и подпишитесь.

Посмотрите мою другую статью -