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 • Equip 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?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat