Русская Википедия:SOLID (программирование)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Другие значения термина SOLID (сокр. от Шаблон:L6e и Шаблон:Lang) в программировании — мнемонический акроним, введённый Майклом Фэзерсом (Шаблон:Lang-en2) для первых пяти принципов, названных Робертом Мартином[1][2] в начале 2000-х[3], которые означали 5 основных принципов объектно-ориентированных проектирования и программирования.

Принципы

Избавиться от «признаков плохого проекта»[4] помогают следующие 5 принципов SOLID:

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

Для чего нужны принципы SOLID

При создании программных систем использование принципов SOLID способствует созданию такой системы, которую будет легко поддерживать и расширять в течение долгого времени[3]. Принципы SOLID — это руководства, которые также могут применяться во время работы над существующим программным обеспечением для его улучшения, например, для удаления «дурно пахнущего кода».

Стратегии гибкой и Шаблон:Нп5[3] предполагают написание кода с соблюдением принципов SOLID.

См. также

Примечания

Шаблон:Примечания

Литература

  • Роберт С. Мартин, Джеймс В. Ньюкирк, Роберт С. Косс. Быстрая разработка программ. Принципы, примеры, практика. — Вильямс, 2004, ISBN 5-8459-0558-3, ISBN 0-13-597444-5.
  • Мартин Р., Мартин М. Принципы, паттерны и методики гибкой разработки на языке C#. — Символ-Плюс, 2011, ISBN 5-93286-197-5, ISBN 978-5-93286-197-4, ISBN 0-13-185725-8, ISBN 978-0-13-185725-4.
  • Мартин, Р. Чистая архитектура. Искусство разработки программного обеспечения. = Clean architecture. A Craftsman’s Guide to Software Structure and Design. — Питер, 2018. — ISBN 978-5-4461-0772-8.

Ссылки

  1. 1,0 1,1 Шаблон:Cite web (прим. отсылка на «first five principles», то есть в статье не используется акроним.)
  2. Шаблон:Cite web
  3. 3,0 3,1 3,2 Шаблон:Cite web Выступление на конференции «2009 Gotham Ruby Conference» в мае 2009.
  4. 4,0 4,1 Шаблон:Книга
  5. Шаблон:Cite web
  6. Шаблон:Cite web
  7. Шаблон:Cite web
  8. Шаблон:Cite web
  9. 9,0 9,1 Шаблон:Cite web
  10. Шаблон:Cite web