En este artículo, vamos a explorar cada uno de los principios SOLID con una explicación fácil de entender para adolescentes y una más técnica, acompañadas de ejemplos prácticos. ¡Vamos a sumergirnos en el fascinante mundo de los principios SOLID!
Principio de Responsabilidad Única (SRP)
Explicación para chavales: Imagina que tienes una agenda donde apuntas tus tareas escolares y otra donde anotas tus actividades extracurriculares. Si intentas poner todo en una sola agenda, se volverá un caos. El principio de responsabilidad única dice que cada parte de tu programa debe hacer solo una cosa, como tener una agenda solo para tareas escolares y otra solo para actividades extracurriculares.
Explicación técnica: El Principio de Responsabilidad Única establece que una clase debe tener una sola razón para cambiar, es decir, solo debe tener una responsabilidad o tarea.
Ejemplo:
En este ejemplo, ReportGenerator
solo se encarga de generar el reporte y ReportPrinter
solo se encarga de imprimirlo, manteniendo responsabilidades separadas.
Principio Abierto/Cerrado (OCP)
Explicación para chavales: Piensa en una aplicación de celular que puede recibir actualizaciones. Puedes agregar nuevas funciones a la aplicación sin tener que cambiar las partes que ya funcionan bien. El principio abierto/cerrado dice que tu código debe estar abierto para agregar cosas nuevas, pero cerrado para cambiar lo que ya existe.
Explicación técnica: El Principio Abierto/Cerrado establece que una entidad de software (clase, módulo, función, etc.) debe estar abierta para extensión pero cerrada para modificación.
Ejemplo:
Aquí, puedes agregar nuevas formas (como
Circle
y Square
) sin modificar la clase Shape
.Principio de Sustitución de Liskov (LSP)
Explicación para chavales: Imagina que tienes un videojuego donde puedes jugar como diferentes personajes. Si un nuevo personaje se comporta de manera extraña y rompe las reglas del juego, es un problema. El principio de sustitución de Liskov dice que cualquier parte del programa debe poder reemplazarse con una versión nueva sin que nada se rompa.
Explicación técnica: El Principio de Sustitución de Liskov establece que las clases derivadas deben ser sustituibles por sus clases base sin alterar el comportamiento esperado del programa.
Ejemplo:
En este caso, Sparrow
puede sustituir a Bird
sin problemas.
Principio de Segregación de Interfaces (ISP)
Explicación para chavales: Piensa en una aplicación de redes sociales. No todos los usuarios necesitan todas las funciones. Algunos solo quieren chatear y otros solo quieren ver videos. El principio de segregación de interfaces dice que no debes obligar a los usuarios a usar funciones que no necesitan.
Explicación técnica: El Principio de Segregación de Interfaces establece que los clientes no deben verse obligados a depender de interfaces que no utilizan.
Ejemplo:
Aquí,
VideoPlayer
y MusicPlayer
son interfaces separadas, permitiendo a MediaApp
implementar solo las funciones necesarias.Principio de Inversión de Dependencia (DIP)
Explicación para chavales: Imagina que tienes una lámpara que solo puede usar un tipo específico de bombilla. Si la bombilla se agota y ya no se fabrica, la lámpara se vuelve inútil. El principio de inversión de dependencia dice que las cosas importantes deben depender de cosas generales, no de cosas específicas, para que puedan cambiar fácilmente.
Explicación técnica: El Principio de Inversión de Dependencia establece que los módulos de alto nivel no deben depender de módulos de bajo nivel, sino que ambos deben depender de abstracciones.
Ejemplo:
En este ejemplo, la clase Lamp
depende de la abstracción LightBulb
, permitiendo usar diferentes tipos de bombillas.
Fuente: https://medium.com/@nandy_x/principios-solid-que-son-y-para-que-sirven-1e4799daebf5
No hay comentarios:
Publicar un comentario