Arquitectura limpia. Parte III - Principios de diseño

Esta serie es un recuento gratuito y muy breve del libro Clean Architecture de 2018 de Robert Martin (tío Bob). La parte anterior está aquí .





Criterios de diseño

Los principios SOLID nos dicen cómo podemos combinar nuestras funciones y datos en clases, y cómo estas clases deben estar interconectadas. Es decir, estos principios se encuentran en el nivel medio. Sin embargo, también se aplican al nivel de componente (arquitectura de alto nivel).





Los principios SOLID comenzaron a fines de la década de 1980 y se estabilizaron a principios de la década de 2000.





SRP: Principio de responsabilidad única

Históricamente, este principio se ha formulado de la siguiente manera: un módulo debe tener una y solo una razón para cambiar.





Sin embargo, el tío Bob sugiere una formulación diferente y más precisa: el módulo debe estar a cargo de un solo actor .





Un módulo es un conjunto relacionado de funciones y estructuras de datos.





Un ejemplo de una violación del principio: la clase Employee



con tres métodos calculatePay()



, reportHours()



, save()



. Los tres métodos se aplican a diferentes actores. calculatePay()



- esto es contabilidad, reportHours()



- este es el departamento de personal, save()



- este es el administrador de la base de datos. Si uno de los actores solicita realizar cambios en su método, esto puede romper la lógica de otros métodos. También dificulta la fusión de cambios de diferentes actores.





– . , .





OCP: /

, .





: .





.





: -. - . OCP , , , . , , , . , .. .





, , .





OCP , .





LSP:

: S T, T S - .





, , .





LSP: /.





LSP: , REST- . . , , .





ISP:

, .





, , .





, . ISP , , , . , , . .





DIP:

, .





Java , .





, , , java.lang.String



. . , , . .





. , , .





.





, ? :









  • , (XML, )









En el futuro, nos referiremos al principio DIP con más frecuencia que a otros principios, porque nos dicta la regla más importante para construir una arquitectura competente: las Reglas de Dependencia .





Continuará...








All Articles