ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo...

26
ORIENTACIÓN A OBJETOS El paradigma

Transcript of ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo...

Page 1: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

ORIENTACIÓN A OBJETOS

El paradigma

Page 2: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Conceptos relacionados

• Abstracción• Herencia • Polimorfismo• Encapsulamiento• Envió de mensajes• Asociaciones• Agregación

Page 3: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Introducción

La orientación a objetos es un medio para la generación de programas, permite desarrollar una metodología basada en componentes para el desarrollo.

Se genera un sistema mediante un conjunto de objetos

Page 4: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Introducción

OMG: Grupo de Administración de Objetos Predice ingresos por 3 mil millones de dolares

en los siguientes años.

UML permite generar generar modelos de objetos faciles de usar y de comprender.

Page 5: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Introducción

• La orientación a objetos es un paradigma , que depende de ciertos principios; principios que hacen funcionar a los objetos y como usarlos en el análisis y en el diseño.

Page 6: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

¿Qué fue primero el huevo o la gallina?• Objetos ó ClasesIdeas intuitivas:

• LOS OBJETOS CONFORMAN NUETRO ENTORNO.• EL SOFTWARE SIMULA AL MUNDO• LOS PROGRAMAS IMITAN A LOS OBJETOS DEL MUNDO.

Objeto: Es una instancia de la clase (ó categoría). Un objeto cuenta con una estructura; ATRIBUTOS (propiedades) y ACCIONES.

Acciones= actividades que el objeto es capar de realizarAtributos = características o rasgos del objeto

Page 7: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Objetos

CLASE CIRCULO_________________

String colorRelleno

_________________

Float calcularArea()

OBJETO CIRCULO-ROJO

colorRelleno=rojo

OBJETO CIRCULO-VERDE

colorRelleno=verde

Instancia

Page 8: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Clases• Las clases en los programas orientados a objetos pueden crear

nuevas instancias.• Una clase es una categoría de objetos y también una plantilla

sirve para crear otros objetos.

La clase lavadora, es un plantilla paraGenerar instancias de lavadoras

Ejemplo de nombres de clases son: Lavadora, LavadoraIndustrial.

Page 9: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

clase

• El propósito de la orientación a objetos es desarrollar software que refleje (i.e. modele) un esquema del mundo.

• Entre mas atributos y acciones tome en cuenta, mayor será la similitud de un modelo con la realidad.

Page 10: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Clases vs Clases

Modelo más exacto

¿Son todas las características realmente necesarias en un modelo mas exacto?

Page 11: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Abstracción

Se refiere a quitar las propiedades y acciones de una clase para dejar solo aquellas que sean necesarias.

Distintos problemas requieren diferente cantidad de información, aun si estos problemas pertenecen a un área en común.

Ejemplo, las dos versiones de la clase lavadora, son modelos útiles en distintos problemas: venta de lavadoras y diseño de lavadoras, respectivamente.

Page 12: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Herencia

CLASE CIRCULO_________________

PROPIEDADES

_________________METODOS OBJETO

CIRCULO-ROJO

OBJETO CIRCULO-

VERDEHerencia no explicita:

No importa que atributos y acciones se usen de la clase circulo, cada objeto hereda todos los Atributos y acciones.

Un objeto tiene todas las características de la clase de la que proviene.

Page 13: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Herencia

Un objeto puede ser creado a partir de heredar atributos y métodos de otras clases.

Por tanto, una clase hija hereda de su clase padre.

La herencia impone una relación jerárquica entre clases.

Page 14: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

HerenciaCLASE C1_________________

PROPIEDADES

_________________METODOS

CLASE C2_________________

PROPIEDADES

_________________METODOS

CLASE C3_________________

PROPIEDADES

_________________METODOSC3=C3+C2+C1

Herencia entre clases simple y explicita:

Superclase/Subclase

Subclase

Superclase

Jerarquía de clases

Page 15: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Herencia

Cada tipo de clase de electrodomésticosHereda de la clase “electrodoméstico” que es

subclase de la superclase “artículos del hogar”.

Jerarquía de clases

Page 16: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Polimorfismo

• Se refiere a una operación que tiene el mismo nombre en diferentes clases, pero se comporta de forma diferente en cada clase.

• Cada clase “sabe” como debe realizar tal operación.

Para abrir una puerta, ventana o un regalo el

procedimiento es diferente.

Page 17: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Polimorfismo• Ejemplo, el método “calcularArea()” en las clases circulo, figura y

cuadrado.

• El polimorfismo es importante, ya que les permite hablar con el cliente (quien esta familiarizado con la sección del mundo que será modelada) en las propias terminología del cliente.

• Las palabras y terminología del cliente nos conducen a palabras (como abrir) que pueden tener mas de un significado (polisemia).

• El analista/modelador puede mantener tal terminología sin que tener que agregar palabras artificiales para comprender mejor los términos.

Page 18: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

EncapsulamientoLos objetos encapsulan lo que hacen; es decir ocultan la funcionalidad interna de sus operaciones de otros objetos y del mundo exterior.

… la mayoría de personas que ven la televisión no saben de la complejidad electrónicaque hay detrás de la pantalla. EL televisor hace lo que debe de hacer sin mostrarnos el proceso.

Page 19: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

EncapsulamientoEn el software, el encapsulamiento permite reducir el potencial de errores que pudieran ocurrir.

Un objeto depende de otro, si un objeto falla puede ser modificado, sin afectar los la funcionalidad de otros de objetos.

Esta modificación posible, gracias a que le encapsulamiento permite una mayor modularidad.

Piense cuando se descompone algún elemento de su computadora.

Page 20: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Envío de mensajesEs un sistema los objetos trabajan en conjunto. El envió de mensajes entre objetos es el mecanismo para comunicarse entre sí, y realizar tareas en conjunto a fin de un objetivo.

Page 21: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Asociaciones• Se refiere a la forma en que los objetos se

relacionan entre si (tipo de relación).

Page 22: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Asociaciones

• Una clase se puede asociar con más de una clase distinta. Una persona puede viajar en automóvil, pero también puede hacerlo en autobús.

• Por lo general, los objetos se asocian entre sí y esta asociación puede ser de diversos tipos. Un objeto en una clase puede asociarse con cualquier cantidad de objetos distintos en otra clase.

• La multiplicidad (o diversificación) es importante ya que indica la cantidad de objetos de una clase que se relacionan con otro objeto en particular de la clase asociada.

Page 23: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Asociaciones -> Multiplicidad

• Por ejemplo, en un curso escolar, el curso se imparte por un solo instructor, en consecuencia, el curso y el instructor están en una asociación de uno a uno.

• Una bicicleta rueda en dos neumáticos (multiplicidad de uno a dos), un triciclo rueda en tres, y un vehículo de 18 ruedas, en 18.

Page 24: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

AgregaciónCuando un objeto se conforma de la combinación de diversos tipos de objetos (relación“es parte de”).

Una computadoraes un ejemplo deagregación: un objetoque se conforma deuna combinaciónde diversos tipos deobjetos.

Page 25: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

Composición

• Un tipo de agregación trae consigo una estrecha relación entre un objeto agregado y sus objetos componentes; a esto se le conoce como composición.

• El punto central de la composición, es que el componente se considera como tal sólo como parte del objeto compuesto.

• Por ejemplo: una camisa está compuesta de cuerpo, cuello, botones, ojales y puños. Suprima la camisa y el cuello será inútil.

SAXBuilder

Page 26: ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo Encapsulamiento Envió de mensajes Asociaciones Agregación.

• FUENTE: Aprendiendo UML en 24 horas