En la programación de computadoras orientada a objetos , SOLID es un acrónimo mnemónico de cinco principios de diseño destinados a hacer que los diseños de software sean más comprensibles, flexibles y fáciles de mantener . Los principios son un subconjunto de muchos principios promovidos por el ingeniero de software e instructor estadounidense Robert C. Martin , [1] [2] [3] introducidos por primera vez en su artículo de 2000 Design Principles and Design Patterns . [2] [4]
Los conceptos SOLID son
- El principio de responsabilidad única : "Nunca debería haber más de una razón para que una clase cambie". [5] En otras palabras, cada clase debe tener una sola responsabilidad. [6]
- El principio abierto-cerrado : "Las entidades de software ... deben estar abiertas para extensión, pero cerradas para modificación". [7]
- El principio de sustitución de Liskov : "Las funciones que usan punteros o referencias a clases base deben poder usar objetos de clases derivadas sin saberlo". [8] Véase también diseño por contrato . [8]
- El principio de segregación de interfaces : "Muchas interfaces específicas del cliente son mejores que una interfaz de propósito general". [9] [4]
- El principio de inversión de la dependencia : "Dependen de abstracciones, [no] concreciones". [10] [4]
El acrónimo SOLID fue introducido más tarde, alrededor de 2004, por Michael Feathers. [11]
Aunque los principios SOLID se aplican a cualquier diseño orientado a objetos, también pueden formar una filosofía central para metodologías como el desarrollo ágil o el desarrollo de software adaptativo . [3]
Ver también
Referencias
- ^ Robert C. Martin . "Principios de OOD" . butunclebob.com . Consultado el 17 de julio de 2014 .. (Tenga en cuenta la referencia a "los primeros cinco principios", aunque el acrónimo no se utiliza en este artículo). Se remonta al menos a 2003.
- ^ a b Robert C. Martin. "Conseguir un comienzo SÓLIDO" . objectmentor.com . Consultado el 19 de agosto de 2013 .
- ^ a b Sandi Metz (mayo de 2009). "Diseño SÓLIDO Orientado a Objetos" . Consultado el 13 de agosto de 2019 .Charla dada en la Gotham Ruby Conference de 2009 .
- ^ a b c Martin, Robert C. (2000). "Principios de diseño y patrones de diseño" (PDF) . Archivado desde el original (PDF) el 6 de septiembre de 2015.
- ^ "Principio de responsabilidad única" (PDF) . objectmentor.com . Archivado desde el original (PDF) el 2 de febrero de 2015.
- ^ Martin, Robert C. (2003). Desarrollo de software ágil, principios, patrones y prácticas . Prentice Hall. pag. 95. ISBN 978-0135974445.
- ^ "Principio abierto / cerrado" (PDF) . objectmentor.com . Archivado desde el original (PDF) el 5 de septiembre de 2015.
- ^ a b "Principio de sustitución de Liskov" (PDF) . objectmentor.com . Archivado desde el original (PDF) el 5 de septiembre de 2015.
- ^ "Principio de segregación de interfaz" (PDF) . objectmentor.com . 1996. Archivado desde el original (PDF) el 5 de septiembre de 2015.
- ^ "Principio de inversión de dependencia" (PDF) . objectmentor.com . Archivado desde el original (PDF) el 5 de septiembre de 2015.
- ^ Martín, Robert (2018). Arquitectura limpia: una guía del artesano para la estructura y el diseño de software . pag. 58. ISBN 9780134494166.