Robert C. Martin y su legado
Los principios SOLID
SOLID es un acrónimo que representa los cinco principios fundamentales de la programación orientada a objetos. Estos principios fueron definidos por Robert C. Martin (también conocido como “Uncle Bob”) con el objetivo de establecer pautas para desarrollar software de alta calidad, flexible y fácil de mantener.

Robert C. Martin “Uncle Bob”
Los principios SOLID son:
-
Single Responsibility Principle (Responsabilidad Única)
-
Open-Closed (Abierto-Cerrado)
-
Liskov Substitution (Sustitución de Liskov)
-
Interface Segregation (Segregación de interfaces)
-
Dependency Inversion (Inversión de dependencia)
Cada uno de estos principios está diseñado para abordar un aspecto específico de la programación orientada a objetos y puede ser aplicado en cualquier lenguaje de programación. Al seguir estos principios, los desarrolladores pueden crear software modular, escalable y fácil de mantener.
Hace poco publique una serie de tweets explicando con ejemplos simples estos principios. Los ejemplos esta escritos en Swift, pero los mismos son aplicables a cualquier otro lenguaje orientado a objetos.
… y para aquellos que me estén saltando de sus asientos diciendo que Swift no es un lenguaje orientado a objetos sino a protocolos, déjenme decirles que en realidad Swift es un lenguaje multiparadigma que admite tanto la programación orientada a objetos como la programación basada en protocolos.
Ahora vayamos a los ejemplos.
Principio de responsabilidad única
En este ejemplo, la clase NetworkService es responsable de realizar la solicitud de red y el UserViewController es responsable de gestionar la respuesta y actualizar la interfaz de usuario.

Principio abierto-cerrado
En este ejemplo, el protocolo Shape define el método area(), y las clases Rectangle y Circle se ajustan al protocolo, pero están abiertas a la ampliación mediante la adición de nuevas formas que se ajusten al protocolo, pero cerradas a la modificación.

Principio de sustitución de Liskov
Ej: Las clases Coche y Moto heredan de Vehículo y sobreescriben el método startEngine(), permitiendo que los objetos de las subclases se utilicen dondequiera que se utilicen los objetos de la superclase, sin afectar a la corrección del programa.

Principio de segregación de interfaces
En este ejemplo, la clase Penguin sólo necesita ajustarse a los protocolos Swimmable y Runnable, no necesita ajustarse al protocolo Flyable, por lo que no está obligada a implementar el método fly().

Principio de inversión de dependencia
En este ejemplo, la clase DataProcessor depende de una abstracción (protocolo DataFetcher) en lugar de una implementación específica, lo que la hace más flexible y fácil de probar.

Entonces, los principios SOLID son una guía útil para los desarrolladores que buscan crear software de alta calidad y evitar los problemas comunes de la programación orientada a objetos, como el acoplamiento excesivo y la falta de cohesión en las clases y métodos.
¿Te gustó este artículo? Apoya mi trabajo y ayúdame a seguir creando contenido.
Cómprame un café