Principios de Diseño de Software: Ejemplo Práctico en Python

Guía de SOLID: SRP, OCP, LSP, ISP y DIP con un ejemplo en Python para un sistema de notificaciones extensible, mantenible y testeable.

15 sept 2025 • 3 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Introducción: Los principios de diseño de software son guías fundamentales que permiten a los desarrolladores crear soluciones mantenibles, escalables y flexibles. Más allá de escribir código que funcione, un buen diseño facilita la ampliación, comprensión y prueba del software a lo largo del tiempo. Entre principios clave están SOLID, DRY, KISS y YAGNI. Este artículo se centra en SOLID y muestra su aplicación con un ejemplo práctico en Python orientado a un sistema de notificaciones extensible y testeable.

Resumen de los principios SOLID: SRP Principio de Responsabilidad Única un componente debe tener una sola razón para cambiar. OCP Principio Abierto/Cerrado las entidades deben estar abiertas a extensión y cerradas a modificación. LSP Principio de Sustitución de Liskov los subtipos deben ser sustituibles por sus tipos base. ISP Principio de Segregación de Interfaces los clientes no deben depender de interfaces que no usan. DIP Principio de Inversión de Dependencias módulos de alto nivel no deben depender de módulos de bajo nivel sino de abstracciones.

Ejemplo práctico: sistema de notificaciones en Python. Imaginemos una aplicación que envía notificaciones por varios canales Email y SMS. El objetivo es poder añadir canales adicionales como Push o Webhooks sin modificar código existente, favoreciendo la extensibilidad.

Definir una abstracción para notificaciones

from abc import ABC, abstractmethod

class Notifier(ABC):

@abstractmethod

def send(self, message: str, recipient: str):

pass

Implementaciones concretas

class EmailNotifier(Notifier):

def send(self, message: str, recipient: str):

print(message, recipient)

class SMSNotifier(Notifier):

def send(self, message: str, recipient: str):

print(message, recipient)

Servicio de notificación usando inyección de dependencias

class NotificationService:

def __init__(self, notifier: Notifier):

self.notifier = notifier

def notify(self, message: str, recipient: str):

self.notifier.send(message, recipient)

Ejemplo de uso

email_notifier = EmailNotifier()

sms_notifier = SMSNotifier()

service = NotificationService(email_notifier)

service.notify(message_welcome, user_email)

service = NotificationService(sms_notifier)

service.notify(message_code, phone_number)

Explicación y vínculo con SOLID: Cada clase concreta tiene una única responsabilidad cumpliendo SRP. Al definir la abstracción Notifier y construir nuevas implementaciones se respeta OCP ya que se extiende sin modificar código existente. NotificationService depende de la abstracción Notifier aplicando DIP y permite sustituir implementaciones concretas sin cambios en el servicio, lo que satisface LSP. ISP invita a diseñar interfaces específicas cuando convenga para no forzar dependencias innecesarias.

Sobre Q2BSTUDIO: En Q2BSTUDIO somos una empresa de desarrollo de software y creamos aplicaciones a medida y software a medida diseñadas para cumplir principios sólidos de arquitectura y facilitar la evolución del producto. Ofrecemos soluciones que integran inteligencia artificial y servicios cloud aws y azure, y contamos con experiencia en ciberseguridad y pentesting para proteger tus activos. Si necesitas un proyecto a medida visita nuestra página de aplicaciones a medida y para iniciativas de IA y transformación con agentes IA y soluciones de ia para empresas consulta nuestra oferta en inteligencia artificial. También trabajamos en servicios inteligencia de negocio y power bi para mejorar la toma de decisiones, automatización de procesos, integración con servicios cloud y estrategias de ciberseguridad que garantizan continuidad y confianza.

Conclusión: Aplicar principios de diseño como SOLID no es solo teoría es una práctica que facilita añadir nuevas funcionalidades como canales de notificación sin romper lo ya construido. En Q2BSTUDIO combinamos buenas prácticas de diseño con tecnologías modernas para entregar software robusto y alineado con objetivos de negocio.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat