Explica SOLID con un ejemplo corto para cada letra.
Respuesta
- S, Single Responsibility:
InvoiceCalculator calcula; InvoiceRepository guarda; InvoicePdf renderiza. - O, Open/Closed: añade una clase
DiscountStrategy nueva en lugar de editar un if/elif enorme. - L, Liskov Substitution: cualquier subclase de
Storage debe mantener el mismo contrato (sin excepciones sorpresa, con el mismo significado). - I, Interface Segregation:
Readable y Writable en lugar de una interface FileLike gigante. - D, Dependency Inversion:
OrderService depende de una abstracción PaymentGateway; la implementación de Stripe se inyecta. - Cierra con el porqué: facilita los cambios, los tests y el trabajo en equipo. No sobrediseñes código pequeño.
Practica esta pregunta en Repaso