В этой статье я хочу кратко пройти Твердое Принципы (аббревиатура, которое означает пять основных принципов объектно-ориентированного программирования и дизайна), снабжению каждого из них реальными визуальными примерами, чтобы сделать эти принципы более понятными, читаемыми и запоминающимися.
Если вы хотите увидеть примеры кода вместо этого вы можете взглянуть на Разнообразие реализаций структуры данных деревьев в JavaScript Как Двоичное дерево поиска , AVL Tree , Красно-черное дерево , Дерево сегмента или Фенвик Дерево Отказ
Так что давайте будем двигаться дальше!
S – единственный принцип ответственности
[a.k.a SRP Несомненно Класс должен иметь только одну ответственность. Только одно потенциальное изменение спецификации программного обеспечения должно быть в состоянии повлиять на спецификацию класса.
O – Открытый/закрытый принцип
[a.k.a OCP ] Программные объекты должны быть открыты для расширения, но закрываются для модификации. Разрешить продление поведения без изменения исходного кода.
L – Принцип замены Liskov
[a.k.a. LSP Несомненно Объекты в программе должны быть замены с экземплярами их подтипов, не изменяя правильность этой программы.
I – принцип сегрегации интерфейса
[a.k.a. ISP Несомненно Многие клиентские интерфейсы лучше, чем один интерфейс общего назначения. Ни один клиент не должен быть вынужден зависеть от методов, которые он не использует.
D – Принцип инверсии зависимости
[a.k.a. Dip Несомненно Нужно зависеть от абстракций, а не конкреций.
- Модули высокого уровня не должны зависеть от модулей низкоуровневых. Оба должны зависеть от абстракций.
- Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Штекер не заботится, какой тип проволоки он использует, он просто нуждается в проводах, которые проводят электричество.
Я надеюсь, что эти иллюстрации были полезны для вас:)
Оригинал: “https://dev.to/trekhleb/s-o-l-i-d-principles-around-you-1o17”