Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"
#CodeRetreatNEA #GDCR2013 14/Diciembre/2013
Jose A. Fernandez @fernandezja
http://about.me/fernandezja
4. Que hacemos?
Que tenemos que hacer hoy?
•Escribir Código, Programar? DISEÑAR
•Escribir código “como homo sapiens”
•Incluso generarlo…
•Problemas/inconvenientes
•Escribirlo
•Entenderlo (ni siquiera tocarlo)
•Mantenerlo
•Trabajar con otros “homo sapiens”
6. Bueno si! Pero S.O.L.I.D.?
•Single Responsibility Principle
Responsabilidad Única
•Open-Closed Principle
Abierto/Cerrado
•Liskov Substitution Principle
Substitución de Liskov
•Interface Segregation Principle
Segreación de Intefaz
•Dependency Inversion Principle
Inversion de Dependencia
7. Principio de Responsabilidad Única
• Responsabilidad?
• Cohesión y Acoplamiento…
• Que sus servicios deben estar alineados a dicha responsabilidad
• …Una razón para cambiar
• Acoplar por el simple hecho que se parecen
• Como nos damos cuenta?
• Comentarios, agrupamiento
• Utilización de estado interno (agrupado)
10. Principio de Abierto/Cerrado
•Nuestros artefactos de software (clases, módulos,
funciones) deben estar Abiertos a la extensión,
cerrado para la modificación
•Tratar de realizar por diseño
• Herencia (Especificar, Generalizar)
• Polimorfismo (próximo principio…)
11.
12. Principio de Sustitución de Liskov
• Los subtipos deben ser sustituibles por sus tipos base
JugadorDeFutbol
Delantero MedioCampo Defensa Arquero Suplente
13.
14. Segreación de Intefaz
• Establece que los clientes no deberían verse obligados a
depender de los métodos que no utilizan
• Pero si depender de sus abstracciones
• Separación de métodos (agrupamiento)
• No por cantidad sino por utilización de clientes
15.
16. Principio de Inversión de Dependencia
• Módulos de alto nivel no depender de módulos de bajo nivel
• Abstracción
• En POO: Interfaces
• Preguntas
• N Layers?
• Servicios?