Инициал | Представляет | Название, понятие | Пример в коде |
---|---|---|---|
S | SRP | Принцип единственной ответственности (single responsibility principle) Для каждого класса должно быть определено единственное назначение. Все ресурсы, необходимые для его осуществления, должны быть инкапсулированы в этот класс и подчинены только этой задаче. | link |
O | OCP | Принцип открытости/закрытости (open–closed principle) «программные сущности … должны быть открыты для расширения, но закрыты для модификации». | link |
L | LSP | Принцип подстановки Лисков (Liskov substitution principle) «объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения правильности выполнения программы». См. также контрактное программирование. Производный класс должен быть взаимозаменяем с родительским классом. | link |
I | ISP | Принцип разделения интерфейса (interface segregation principle) «много интерфейсов, специально предназначенных для клиентов, лучше, чем один интерфейс общего назначения». | link |
D | DIP | Принцип инверсии зависимостей (dependency inversion principle) «Зависимость на Абстракциях. Нет зависимости на что-то конкретное». | link |
yegorskikh/SOLID-Swift
Избавиться от «признаков плохого проекта» помогают следующие 5 принципов SOLID.
Swift