SlideShare a Scribd company logo
1 of 17
Conceptos Avanzados OO
Principio de Responsabilidad Única Una clase debe tener una, y solo una razón para cambiar ¿Por qué es importante mantener las responsabilidades en clases separadas? Por que cada responsabilidad es un eje de cambio. Cuando los requerimientos cambian, esos cambios se manifiestan a través de un cambio de responsabilidades a través de las clases. Si una clase asume más de una responsabilidad, entonces habrá más de una razón para modificarla.
Principio de Responsabilidad Única(2) 	Si una clase tiene mas de una responsabilidad, entonces estas responsabilidades se acoplan. Los cambios en una responsabilidad pueden afectar o inhibir la habilidad de la clase para cumplir con las demás. Este tipo de acoplamiento resulta en diseños frágiles que se rompen de formas inesperadas cuando hay cambios.
Interface Modem interface Modem { publicvoid marcar(String numero); pubicvoid colgar() publicvoid enviar(char c) publicvoid recibir() }
Modem Correcto
Principio Abierto Cerrado  Debe ser posible extender el comportamiento de una clase, sin modificarlo. Los módulos que conforman el principio abierto-cerrado tienen dos atributos principales.
Abiertos a la extensión Están “Abiertos para la extensión”. Esto significa que el comportamiento del modulo puede ser extendido.  Se puede hacer que el modulo se comporte de maneras nuevas y diferentes conforme cambien los requerimientos de la aplicación, o para cumplir con los requerimientos de nuevas aplicaciones.
Cerrados a la modificación Están “Cerrados a la modificación”. El código fuente de estos módulos es inviolable. Nadie tiene permitido hacer cambios en sus códigos fuentes. Los módulos deben tener una interfaz estable y bien definida que no se modificará para no afectar a otros módulos que dependan de ellos.
Claves del principio Abierto-Cerrado 	El código bien diseñado puede ser extendido sin modificaciones; y que en los programas bien diseñados, se pueden agregar características nuevas agregando nuevo código, en ves de cambiar código antiguo que ya funciona. Nota: La abstracción y el polimorfismo son la clave
Principio de inversión de dependencias 	Se debe depender de abstracciones, no de 	cosas concretas.  	Los módulos de alto nivel no deben 	depender de módulos de bajo nivel. 	Ambos deben depender de abstracciones.  	Las abstracciones no deben depender de 	detalles. Los detalles deben depender de 	las abstracciones.
Principio de sustitución de Liskov Las funciones que usan referencias a clases base, deben ser capases de usar objetos de clases derivadas sin darse cuenta La importancia de este principio se hace evidente cuando deja de cumplirse.
Principio violado publicclass figura { publicvoid dibuja() { if(thisinstanceofPoligono) { dibujaPoligono(); } elseIf(thisinstanceof Circulo) { dibujaCirculo(); } } }
Principio correcto publicclassPoligonoextends Figura { publicvoid dibuja() {…} } publicclass Circulo extends Figura { publicvoid dibuja() {…} }
Principio de segregación de interfaces Los clientes de una clase no deben depender de interfaces que no utilizan. Este principio se ocupa de las desventajas de las interfaces “gordas”. Las clases que tienen interfaces “gordas ” son clases cuyas interfaces no son cohesivas.
En otras palabras, las interfaces de las clases pueden ser separadas en grupos de funciones miembro.  Cada grupo sirve a un conjunto distinto de clientes. Por lo que algunos clientes usan un grupo de funciones miembro, y otros clientes usan los otros grupos. Principio de segregación de interfaces
¿Alguna Pregunta? 16
Gracias 17 http://www.javatutoriales.com/ Java Tutoriales en Facebook

More Related Content

Similar to Conceptos avanzados oo (presentación 4)

Capitulo 7 moving features between objects
Capitulo 7  moving features between objectsCapitulo 7  moving features between objects
Capitulo 7 moving features between objectsJ Pablo Rivera
 
Principios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a ObjetosPrincipios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a ObjetosJose E. Rodriguez Huerta
 
Definiciones taller 8 agost
Definiciones taller 8 agostDefiniciones taller 8 agost
Definiciones taller 8 agostoosorioj
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?Adrian Diaz Cervera
 
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptxMecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptxjuan gonzalez
 
Jyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc X
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo2008PA2Info3
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño EstructuradoDrago Díaz
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoAngel Vázquez Patiño
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clasesvay82
 

Similar to Conceptos avanzados oo (presentación 4) (20)

JAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIAJAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIA
 
Solid Principles
Solid PrinciplesSolid Principles
Solid Principles
 
TRABAJO DE INVESTIGACION.pdf
TRABAJO DE INVESTIGACION.pdfTRABAJO DE INVESTIGACION.pdf
TRABAJO DE INVESTIGACION.pdf
 
La Herencia y demas
La Herencia y demasLa Herencia y demas
La Herencia y demas
 
Capitulo 7 moving features between objects
Capitulo 7  moving features between objectsCapitulo 7  moving features between objects
Capitulo 7 moving features between objects
 
Unidad_01_04.pdf
Unidad_01_04.pdfUnidad_01_04.pdf
Unidad_01_04.pdf
 
Principios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a ObjetosPrincipios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a Objetos
 
Guía Herencia PO_O
Guía Herencia PO_OGuía Herencia PO_O
Guía Herencia PO_O
 
Definiciones taller 8 agost
Definiciones taller 8 agostDefiniciones taller 8 agost
Definiciones taller 8 agost
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?
 
JAVA- basico
JAVA- basicoJAVA- basico
JAVA- basico
 
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptxMecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
 
Jyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc java-cap08 principios poo
Jyoc java-cap08 principios poo
 
Prog oo con_java
Prog oo con_javaProg oo con_java
Prog oo con_java
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
Solid
SolidSolid
Solid
 
Unidad II_1.pptx
Unidad II_1.pptxUnidad II_1.pptx
Unidad II_1.pptx
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clases
 

More from programadorjavablog (18)

Hibernate - Relaciones
Hibernate - RelacionesHibernate - Relaciones
Hibernate - Relaciones
 
Hibernate - Introducción
Hibernate - IntroducciónHibernate - Introducción
Hibernate - Introducción
 
Conceptos de código limpio (presentación 5)
Conceptos de código limpio (presentación 5)Conceptos de código limpio (presentación 5)
Conceptos de código limpio (presentación 5)
 
Java 5 se (presentación3)
Java 5 se (presentación3)Java 5 se (presentación3)
Java 5 se (presentación3)
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e io
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e io
 
7iSF-4 test driver development
7iSF-4   test driver development7iSF-4   test driver development
7iSF-4 test driver development
 
7iSF-3 scrum
7iSF-3   scrum7iSF-3   scrum
7iSF-3 scrum
 
7iSF-2 rup
7iSF-2   rup7iSF-2   rup
7iSF-2 rup
 
7iSF-1 ingeniería de software
7iSF-1   ingeniería de software7iSF-1   ingeniería de software
7iSF-1 ingeniería de software
 
7iSF-6 temas extra
7iSF-6   temas extra7iSF-6   temas extra
7iSF-6 temas extra
 
7iSF-5 cmm
7iSF-5   cmm7iSF-5   cmm
7iSF-5 cmm
 
Curso scjp 4 declaracion de clases
Curso scjp 4   declaracion de clasesCurso scjp 4   declaracion de clases
Curso scjp 4 declaracion de clases
 
Curso scjp 3 identificadores y control de acceso
Curso scjp 3   identificadores y control de accesoCurso scjp 3   identificadores y control de acceso
Curso scjp 3 identificadores y control de acceso
 
Curso scjp 2 recordatorio de java
Curso scjp 2   recordatorio de javaCurso scjp 2   recordatorio de java
Curso scjp 2 recordatorio de java
 
ICEFaces 2.0
ICEFaces 2.0ICEFaces 2.0
ICEFaces 2.0
 
Html5
Html5Html5
Html5
 
Programación orientada a aspectos
Programación orientada a aspectosProgramación orientada a aspectos
Programación orientada a aspectos
 

Recently uploaded

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 

Recently uploaded (20)

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 

Conceptos avanzados oo (presentación 4)

  • 2. Principio de Responsabilidad Única Una clase debe tener una, y solo una razón para cambiar ¿Por qué es importante mantener las responsabilidades en clases separadas? Por que cada responsabilidad es un eje de cambio. Cuando los requerimientos cambian, esos cambios se manifiestan a través de un cambio de responsabilidades a través de las clases. Si una clase asume más de una responsabilidad, entonces habrá más de una razón para modificarla.
  • 3. Principio de Responsabilidad Única(2) Si una clase tiene mas de una responsabilidad, entonces estas responsabilidades se acoplan. Los cambios en una responsabilidad pueden afectar o inhibir la habilidad de la clase para cumplir con las demás. Este tipo de acoplamiento resulta en diseños frágiles que se rompen de formas inesperadas cuando hay cambios.
  • 4. Interface Modem interface Modem { publicvoid marcar(String numero); pubicvoid colgar() publicvoid enviar(char c) publicvoid recibir() }
  • 6. Principio Abierto Cerrado Debe ser posible extender el comportamiento de una clase, sin modificarlo. Los módulos que conforman el principio abierto-cerrado tienen dos atributos principales.
  • 7. Abiertos a la extensión Están “Abiertos para la extensión”. Esto significa que el comportamiento del modulo puede ser extendido. Se puede hacer que el modulo se comporte de maneras nuevas y diferentes conforme cambien los requerimientos de la aplicación, o para cumplir con los requerimientos de nuevas aplicaciones.
  • 8. Cerrados a la modificación Están “Cerrados a la modificación”. El código fuente de estos módulos es inviolable. Nadie tiene permitido hacer cambios en sus códigos fuentes. Los módulos deben tener una interfaz estable y bien definida que no se modificará para no afectar a otros módulos que dependan de ellos.
  • 9. Claves del principio Abierto-Cerrado El código bien diseñado puede ser extendido sin modificaciones; y que en los programas bien diseñados, se pueden agregar características nuevas agregando nuevo código, en ves de cambiar código antiguo que ya funciona. Nota: La abstracción y el polimorfismo son la clave
  • 10. Principio de inversión de dependencias Se debe depender de abstracciones, no de cosas concretas. Los módulos de alto nivel no deben depender de módulos de bajo nivel. Ambos deben depender de abstracciones. Las abstracciones no deben depender de detalles. Los detalles deben depender de las abstracciones.
  • 11. Principio de sustitución de Liskov Las funciones que usan referencias a clases base, deben ser capases de usar objetos de clases derivadas sin darse cuenta La importancia de este principio se hace evidente cuando deja de cumplirse.
  • 12. Principio violado publicclass figura { publicvoid dibuja() { if(thisinstanceofPoligono) { dibujaPoligono(); } elseIf(thisinstanceof Circulo) { dibujaCirculo(); } } }
  • 13. Principio correcto publicclassPoligonoextends Figura { publicvoid dibuja() {…} } publicclass Circulo extends Figura { publicvoid dibuja() {…} }
  • 14. Principio de segregación de interfaces Los clientes de una clase no deben depender de interfaces que no utilizan. Este principio se ocupa de las desventajas de las interfaces “gordas”. Las clases que tienen interfaces “gordas ” son clases cuyas interfaces no son cohesivas.
  • 15. En otras palabras, las interfaces de las clases pueden ser separadas en grupos de funciones miembro. Cada grupo sirve a un conjunto distinto de clientes. Por lo que algunos clientes usan un grupo de funciones miembro, y otros clientes usan los otros grupos. Principio de segregación de interfaces
  • 17. Gracias 17 http://www.javatutoriales.com/ Java Tutoriales en Facebook