From Wikipedia, the free encyclopedia

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 discussing software rot. [2] [4]: 2–3 

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. ^ Martin, Robert C. "Principles Of OOD". ButUncleBob.com. Archived from the original on Sep 10, 2014. 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 Martin, Robert C. (13 Feb 2009). "Getting a SOLID start". Uncle Bob Consulting LLC (Google Sites). Archived from the original on Sep 17, 2013. Retrieved 2013-08-19.
  3. ^ a b Metz, Sandi (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). objectmentor.com. 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.
From Wikipedia, the free encyclopedia

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 discussing software rot. [2] [4]: 2–3 

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. ^ Martin, Robert C. "Principles Of OOD". ButUncleBob.com. Archived from the original on Sep 10, 2014. 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 Martin, Robert C. (13 Feb 2009). "Getting a SOLID start". Uncle Bob Consulting LLC (Google Sites). Archived from the original on Sep 17, 2013. Retrieved 2013-08-19.
  3. ^ a b Metz, Sandi (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). objectmentor.com. 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.

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook