Jump to content

SOLID

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 2001:18e8:3:1087:f000::3fe (talk) at 07:47, 7 November 2022 (Updating reference templates to specify that the original objectmentor website has been usurped and is unfit for use. Also clarified the website name for the Google Sites reference.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In software engineering, SOLID is a mnemonic acronym for five design principles intended to make object-oriented designs more understandable, flexible, and maintainable. The principles are a subset of many principles promoted by American software engineer and instructor Robert C. Martin,[1][2][3] first introduced in his 2000 paper Design Principles and Design Patterns.[2][4]

The SOLID ideas are

The SOLID acronym was introduced later, around 2004, by Michael Feathers.[11]

Although the SOLID principles apply to any object-oriented design, they can also form a core philosophy for methodologies such as agile development or adaptive software development.[3]

See also

References

  1. ^ Robert C. Martin. "Principles Of OOD". butunclebob.com. Retrieved 2014-07-17.. (Note the reference to "the first five principles", although the acronym is not used in this article.) Dates back to at least 2003.
  2. ^ a b Robert C. Martin. "Getting a SOLID start". Uncle Bob Consulting LLC (Google Sites). Retrieved 2013-08-19.
  3. ^ a b Sandi Metz (May 2009). "SOLID Object-Oriented Design". YouTube. Archived from the original on 2021-12-21. Retrieved 2019-08-13. Talk given at the 2009 Gotham Ruby Conference.
  4. ^ a b c Martin, Robert C. (2000). "Design Principles and Design Patterns" (PDF). Archived from the original on 2015-09-06.{{cite web}}: CS1 maint: unfit URL (link)
  5. ^ "Single Responsibility Principle" (PDF). objectmentor.com. Archived from the original on 2 February 2015.{{cite web}}: CS1 maint: unfit URL (link)
  6. ^ Martin, Robert C. (2003). Agile Software Development, Principles, Patterns, and Practices. Prentice Hall. p. 95. ISBN 978-0135974445.
  7. ^ "Open/Closed Principle" (PDF). objectmentor.com. Archived from the original on 5 September 2015.{{cite web}}: CS1 maint: unfit URL (link)
  8. ^ a b "Liskov Substitution Principle" (PDF). objectmentor.com. Archived from the original on 5 September 2015.{{cite web}}: CS1 maint: unfit URL (link)
  9. ^ "Interface Segregation Principle" (PDF). objectmentor.com. 1996. Archived from the original on 5 September 2015.{{cite web}}: CS1 maint: unfit URL (link)
  10. ^ "Dependency Inversion Principle" (PDF). objectmentor.com. Archived from the original on 5 September 2015.{{cite web}}: CS1 maint: unfit URL (link)
  11. ^ Martin, Robert (2018). Clean Architecture: A Craftsman's Guide to Software Structure and Design. p. 58. ISBN 9780134494166.