Вы находитесь на странице: 1из 2

Principios S.O.L.I.D.

Paola Natasha Becerra Marquez.


Bogota - Colombia,
Universidad Distrital Francisco Jose de Caldas.

paonata_marquez@outlook.com.

Resumen- En este documento se presentara Principio abierto-cerrado (Open-closed): “Una


una compilación de los principios de diseño
SOLID, acompañado de un análisis detallado entidad de software debe estar abierta a extensiones,
sobre cada uno de ellos; de la misma forma se pero cerrada a modificaciones”. Los programas de
añadirán dos principios de diseño distintos a los
SOLID para completar la selección, los cuales aplicaciones generalmente requieren cambios,
seran DRY y KISS. El objetivo principal de esta además, es común que las entidades dependan de
agrupación es evaluar la importancia de cada
uno de ellos en la construcción de un producto otras, por lo tanto, las modificaciones en el código
de software robusto y funcional. pueden causar efectos colaterales en todo el
Palabras Clave- diseño, software, SOLID. programa; es por ello que existe este principio, de
forma resumida lo que propone el enunciado es que
INTRODUCCIÓN
el comportamiento de una entidad debe poder ser
Las aplicaciones de software se desarrollan alterado sin tener que modificar su propio código
contemplando ciertas funcionalidades, sin embargo, fuente. El uso más común de extensión es mediante
nada impide que en el futuro sea necesario la herencia y la reimplementación de métodos.
modificar alguna de ellas o simplemente agregar Existe otra alternativa que consiste en utilizar
otras; es por esta razón que los desarrolladores se métodos que acepten una interface de manera que
ven obligados a contemplar ciertos principios podemos ejecutar cualquier clase que implemente
básicos del diseño, de esta forma, en el futuro no esa interface. En todos los casos, el comportamiento
será tan complejo modificar o añadir acciones en de la clase cambia sin que hayamos tenido que tocar
nuestro programa de aplicación. código interno.

DESARROLLO DEL TEMA


Los principios SOLID son cinco, uno por cada Liskov Substitution Principle (LSP): Este
letra, se agrupan de esta forma gracias a Robert C principio propone que, si una función recibe un
Martin, quien acuño este acrónimo en el año 1995. objeto como parámetro, de tipo X y en su lugar le
pasamos otro de tipo Y, que hereda de X, dicha
Principio de responsabilidad única (Single función debe proceder correctamente. En síntesis, el
responsibility): Este principio da origen a la letra S principio describe la importancia de crear todas las
de S.O.L.I.D. Se rige por la idea de que cada clase clases derivadas para que también puedan ser
debe tener “una única responsabilidad”, es decir, tratadas como la propia clase base. Cuando creamos
una clase debe tener una única razón para ser clases derivadas debemos asegurarnos de no
modificada; esto también aplica para los métodos, reimplementar métodos que hagan que los métodos
cada método debería tener una única razón para ser de la clase base no funcionases si se tratasen como
modificado. El efecto que produce este principio un objeto de esa clase base.
son clases con nombres muy descriptivos y por
tanto largos, que tienen menos de cinco métodos,
cada uno también con nombres, que sirven Interface Segregation Principle (ISP): Cuando
perfectamente de documentación, es decir, de varias empleamos el “Principios de responsabilidad única”
palabras: CalcularAreaRectangulo y que no también empleamos el ISP como efecto colateral.
contienen más de 15 líneas de código.
El ISP defiende que no obliguemos a los clientes DRY: No hay que escribir código duplicado. El
a depender de clases o interfaces que no necesitan código duplicado es propenso a generar errores y es
usar. Tal imposición ocurre cuando una clase o difícil de mantener. Si estamos repitiendo código,
interfaz tiene más métodos de los que un cliente los más recomendable es extraer ese código a una
(otra clase o entidad) necesita para sí mismo. función para encapsularlo. De esta manera si
Seguramente sirve a varios objetos cliente con tenemos que hacer un cambio, este estará localizado
responsabilidades diferentes, con lo que debería en un solo punto, y no desperdigado por todo el
estar dividida en varias entidades. Es decir: cuando código fuente.
se definen interfaces estos deben ser específicos a
una finalidad concreta. Por ello, si tenemos que
definir una serie de métodos abstractos que debe KISS (Keep It Simple Stupid): El diseño de un
utilizar una clase a través de interfaces, es preferible programa debe ser sencillo. Cuánto más sencillo
tener muchas interfaces que definan pocos métodos sea, mejor. Hay que evitar la complejidad como
que tener una interface con muchos métodos. El norma general, pero sobre todo la complejidad
objetivo de este principio es principalmente poder innecesaria.
reaprovechar las interfaces en otras clases.

CONCLUSIONES
Dependency Inversión Principle (DIP): DIP Cuando desarrollamos aplicaciones o productos
explica que un módulo concreto A, no debe de software estamos entregando un aplicativo que
depender directamente de otro módulo concreto B, esta contemplado para usarse no solamente un día, o
sino de una abstracción de B. Tal abstracción es una una semana, sino un tiempo prolongado; de esta
interfaz o una clase (que podría ser abstracta) que manera se hace pertinente construir aplicaciones
sirve de base para un conjunto de clases hijas. El robustas que permitan modificaciones o
objetivo de este principio es conseguir desacoplar extensiones en el futuro, pues es muy probable que
las clases con el uso de abstracciones para conseguir se necesiten. Para llevar a cabo esta complicada
que una clase interactúe con otras clases sin que las tarea, es necesario valerse de diseños o estructuras
conozca directamente. En todo diseño siempre debe ya establecidas, como lo son los principios de
existir un acoplamiento, pero hay que evitarlo en la diseño de software expuestos en el presente
medida de lo posible. Un sistema no acoplado no documento.
hace nada, pero un sistema altamente acoplado es
muy difícil de mantener. REFERENCIAS
[1] Durango, A. (2014). Diseño de Software. IT
Campus Academy.

Вам также может понравиться