Beruflich Dokumente
Kultur Dokumente
Origen en la programacin estructurada (secuencia, ramificacin, iteracin, funcin). Pensar en trminos de estructuras de datos que son manipuladas mediante algoritmos. Dificultades para adaptarse a requisitos cambiantes. Origen en la programacin orientada a objetos. Ms cercano al mundo real porque imita (supuestamente) su estructura: objetos que responden a mensajes enviados por otros objetos. Ms estable frente a cambios en los requisitos:
responsabilidades de clases. mayor cohesin entre datos y funciones.
La Orientacin a Objetos
Clasificacin
Relacin bsica entre clases, y objetos clasificados en clases. Un objeto es instancia de una clase, la clase es su tipo.
Encapsulamiento
Separacin de interfaz e implementacin en una clase.
Generalizacin
La subclase hereda estructura y comportamiento de la superclase.
Polimorfismo
Capacidad de ejecutar distintas operaciones en respuesta al mismo mensaje.
La Orientacin a Objetos
Abstraccin: Qu es un Objeto?
Representacin, o signo, de una entidad concreta. Caractersticas de un objeto:
Comportamiento: operaciones o servicios que puede realizar, en respuesta a mensajes recibidos de otros objetos. Estado: valores almacenados en el objeto como atributos, que son resultado de las operaciones pasadas. Identidad: todo objeto tiene una identidad propia que lo distingue de otros objetos aunque tengan el mismo estado (no es un valor identificador).
Retener los rasgos relevantes y prescindir del resto. Operaciones relevantes, valores relevantes.
La Orientacin a Objetos
Extensin: los objetos. Intensin: definicin o especificacin. Primer nivel (objetos): representacin de entidades concretas.
Slo con sus rasgos relevantes de comportamiento y estado. Prescindir de rasgos no relevantes de comportamiento y estado. Entidad concreta no significa necesariamente entidad fsica o tangible.
Niveles de abstraccin.
Una clase es la especificacin de un conjunto de objetos con estructura y comportamiento comunes. En el modelo de anlisis, las clases, atributos y operaciones corresponden a conceptos del vocabulario del dominio.
Diseo de Software Avanzado Departamento de Informtica
La Orientacin a Objetos
La Orientacin a Objetos
Clasificacin
Relacin bsica entre clases, y objetos clasificados en clases.
Un objeto es instancia de una clase, la clase es su tipo. La clase se usa como plantilla para construir (instanciar) objetos.
La Orientacin a Objetos
Encapsulamiento
Separacin de interfaz e implementacin en una clase.
Atributos privados
Interfaz: vista externa desde otras clases. Implementacin: realizacin interna de las estructuras de datos y funciones.
Operaciones pblicas
Esconder la implementacin, dependencia slo de la interfaz. Disear teniendo en cuenta slo la interfaz, no la implementacin.
Visibilidad: tpicamente todos los atributos son privados, y las operaciones son pblicas si pertenecen a la interfaz de una clase, o privadas si son para uso interno: slo se permite la comunicacin por mensajes.
La Orientacin a Objetos
Diseo de Software Avanzado Departamento de Informtica
Generalizacin
Relacin bsica entre una superclase y una subclase
Principio de sustitucin: donde se espera una instancia de la superclase se puede poner una instancia de la subclase.
p1 : Punto posicinX = 3 posicinY = -5 Clasificacin Punto -posicinX -posicinY +situar( ) +mover( ) -dibujar( ) PuntoColor -color +colorear( )
La Orientacin a Objetos
Instancia indirecta
Generalizacin
Instancia directa
Diseo de Software Avanzado Departamento de Informtica
10
Polimorfismo
Capacidad de ejecutar distintas operaciones en respuesta al mismo mensaje. Una operacin polimrfica es aqulla que tiene muchas implementaciones.
La subclase puede modificar la implementacin de las operaciones heredadas. El mismo nombre de operacin puede designar implementaciones distintas. Objetos de distintas clases en el mismo rbol jerrquico tienen operaciones con el mismo nombre pero con diferente implementacin, por tanto pueden responder al mismo mensaje cada uno a su manera.
p1 : Punto Punto -posicinX -posicinY +situar( ) +mover( ) PuntoColor -color +situar( ) +mover( ) +colorear( )
La Orientacin a Objetos
posicinX = 3 posicinY = -5
p2 : PuntoColor
mover(+1, -1)
11