Programación orientada a objetos (POO) [JAVA]

859 views
743 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
859
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Programación orientada a objetos (POO) [JAVA]

  1. 1. Módulo 2 Programación Orientada a Objetos
  2. 2. Fases de análisis y diseño: 2 Análisis • ¿Qué?objetivos debe perseguir el sistema. • Se definen los elementos implicados: Usuarios, dispositivos y otros sistemas, las actividades Y Diseño • ¿Cómo? alcanzará el sistema esos objetivos. • Se crea un modelo de los elementos implicados (UML -> Unified Modeling Language).
  3. 3. 28/04/2013
  4. 4. Abstracción: • Es el proceso de simplificar un problema complejo enfocándose tan sólo en los aspectos relevantes para la solución. • En el desarrollo de software esto significa centrarse en lo que es y hace un objeto antes de decidir cómo debería ser implementado. 4
  5. 5. Abstracción:
  6. 6. ¿Cuál es la diferencia entre Clase y Objeto?: • Una clase no es un objeto. (pero se usa para construirlo). • Una clase es el prototipo del objeto. • Le dice a la máquina virtual cómo crear un objeto de cierto ese tipo. • Cada objeto de esa clase puede tener sus propios valores para las variables de instancia de esa clase. Clase JVM
  7. 7. Modificadores de acceso: Modificador Clase a nivel de archivo Variable Método Constructor Bloque de código public SI SI SI SI NO private NO SI SI SI NO protected NO SI SI SI NO DEFAULT SI SI SI SI N/A
  8. 8. Encapsulación: • La regla general de encapsulación es: OCULTAR LOS ATRIBUTOS (private) y proporcionar interfaces públicas, es decir métodos (public) get() y set(). • Se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese objeto. • Esto es conveniente porque lo que nos interesará será conocer qué hace la Clase pero no será necesario saber cómo lo hace. • Por lo tanto, la encapsulación garantiza la integridad de los datos que contiene un objeto.
  9. 9. Acoplamiento y cohesión: • Todo desarrollador de software debe tener en cuenta que se obtienen tantos más beneficios cuanto más alta es la cohesión (High Cohesion) y más bajo es el acoplamiento (Loose coupling) en la programación orientada a objetos .
  10. 10. Acoplamiento: • El acoplamiento débil (Loose coupling) se refiere a reducir al mínimo la dependencia de un objeto en otros objetos. • En otras palabras, puede cambiar la implementación de una clase sin afectar a otras clases. • Estas propiedades hacen que el código extensible y fácil de mantener.
  11. 11. Acoplamiento: • Por ejemplo, considere dos clases, A y B. Si estas no se utilizan entre si (ninguna de ellas crea una instancia de la otra o invoca un método en el otra), no están acopladas. A B
  12. 12. Acoplamiento: • Si A usa a B (por ejemplo, crea una instancia de B), pero B no usa A, entonces son débilmente acoplados (loosely coupled). A B
  13. 13. Acoplamiento: Rev. 1.028/04/2013 • Si ambas A y B se utilizan entre si, entonces están estrechamente acopladas (tightly coupled). A B
  14. 14. Cohesión: • Piense en el siguiente escenario: • La clase A necesita hacer una conexión a una Base de Datos (DB), para ello en la clase A declaras un método llamado getConnection() donde haces la conexión a la DB mediante un usuario y contraseña. • La clase B también necesita enlazarse a la base de datos y decides copiar el código dentro del método getConnection() de la clase A y pegarlo en la clase B. • Creas una clase C y haces el mismo procedimiento anterior. • Nuestro diseño cumple con el objetivo, tenemos un par de líneas que hacen la conexión satisfactoriamente a la DB. • ¿Qué sucederá si por alguna razón cambia el usuario y contraseña de la DB?.
  15. 15. Cohesión: • Mientras que el acoplamiento se refiere a la forma en que dos clases interactúan unas con otras. • La cohesión se refiere a cómo una clase se estructura. • La cohesión es una medida interna de la clase referente a lo bien estructurado y muy relacionado con la funcionalidad en una clase.
  16. 16. Cohesión: • El objetivo es diseñar las clases con gran cohesión, que realicen tareas bien definidas y relacionadas (llamada también la cohesión funcional). • Los métodos públicos de una clase altamente cohesivos suelen poner en práctica una sola tarea específica que se relaciona con el propósito de la clase. • Un método en una clase no debe realizar una tarea que en realidad debería ser implementada por otra clase.
  17. 17. Cohesión: Yo hago la conexión a la base de datos. Muy bien yo utilizo tu método getConnection(), si algo cambia tu solucionas los problemas. Yo también necesito conectarme a la BD. ¿Hay alguien que se conecte ya a la DB?, no quiero trabajar doble
  18. 18. Principios Orientados a objetos: • (Weak vs. Strong) Encapsulation • (Tight vs. Loose) Coupling • (Low vs. High) Cohesion higher cohesion <=> looser coupling

×