Aplicar principios SOLID
Prompt
Analiza este código y refactorízalo aplicando los 5 principios SOLID: Single Responsibility (una clase = una responsabilidad), Open/Closed (extensible sin modificar), Liskov Substitution (sustitutible por herencia), Interface Segregation (interfaces pequeñas) y Dependency Inversion (depender de abstracciones).