SOLID (объектно-ориентированное программирование)
SOLID (сокр. от англ. single responsibility, open–closed, Liskov substitution, interface segregation и dependency inversion) в программировании — мнемонический акроним, введённый Майклом Фэзерсом (Michael Feathers) для первых пяти принципов, названных Робертом Мартином[1][2] в начале 2000-х[3], которые означали 5 основных принципов объектно-ориентированного программирования и проектирования.
Для чего нужны принципы SOLID
При создании программных систем использование принципов SOLID способствует созданию такой системы, которую будет легко поддерживать и расширять в течение долгого времени[3]. Принципы SOLID — это руководства, которые также могут применяться во время работы над существующим программным обеспечением для его улучшения, например, для удаления «дурно пахнущего кода».
Стратегии гибкой и адаптивной разработки[3] предполагают написание кода с соблюдением принципов SOLID.
Принципы
Избавиться от «признаков плохого проекта»[4] помогают следующие 5 принципов SOLID:
Инициал | Представляет[1] | Название[4], понятие |
---|---|---|
S | SRP[5] |
|
O | OCP[6] |
|
L | LSP[7] |
|
I | ISP[8] |
|
D | DIP[10] |
|
См. также
Примечания
- Мартин, Роберт (Дядя Боб). Principles Of OOD . butunclebob.com. Дата обращения: 3 мая 2016. (прим. отсылка на «first five principles», то есть в статье не используется акроним.)
- Мартин, Роберт (Дядя Боб). Getting a SOLID start . objectmentor.com. Дата обращения: 3 мая 2016.
- Sandi Metz (Duke University). SOLID Object-Oriented Design (недоступная ссылка). Дата обращения: 3 мая 2016. Архивировано 29 марта 2014 года. Выступление на конференции «2009 Gotham Ruby Conference» в мае 2009.
- Роберт С. Мартин, Мика Мартин. Принципы, паттерны и методики гибкой разработки на языке C#. — СПб.: Символ-плюс, 2011. — С. 8. — 768 с. — ISBN 978-5-93286-197-4.
- Single Responsibility Principle . Архивировано 1 июня 2015 года.
- Open/Closed Principle . Архивировано 5 сентября 2015 года.
- Liskov Substitution Principle . Архивировано 5 сентября 2015 года.
- Interface Segregation Principle (1996). Архивировано 5 сентября 2015 года.
- Мартин, Роберт (Дядя Боб). Design Principles and Design Patterns . objectmentor.com (2000). Дата обращения: 14 января 2009. Архивировано 6 сентября 2015 года.
- Dependency Inversion Principle . Архивировано 5 сентября 2015 года.
Литература
- Роберт С. Мартин, Джеймс В. Ньюкирк, Роберт С. Косс. Быстрая разработка программ. Принципы, примеры, практика. — Вильямс, 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.
Ссылки
- Principles Of OOD (англ.) — Описание и ссылки на подробные статьи о SOLID Assalom O`zbekistondan.
- Хороший дизайн должен быть SOLID: TOP-5 архитектурных принципов (рус.)
- Принципы проектирования классов (рус.)
- Доступно о SOLID (рус.)