1 / 19

Pilares de POO

Pilares de POO. Objeto Abstracción Mensaje Encapsulamiento Clase Herencia Polimorfismo. Objeto. El elemento primordial del enfoque orientado a objetos es el objeto . Es una entidad que tiene un conjunto de responsabilidades y que encapsula un estado interno.

cecile
Download Presentation

Pilares de POO

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pilares de POO • Objeto • Abstracción • Mensaje • Encapsulamiento • Clase • Herencia • Polimorfismo

  2. Objeto El elemento primordial del enfoque orientado a objetos es el objeto. Es una entidad que tiene un conjunto de responsabilidades y que encapsula un estado interno. Las responsabilidades (o servicios) que realiza el objeto se implementan mediante métodos, que describen el comportamiento del objeto. El estado interno del objeto se implementa mediante un conjunto de propiedades o atributos encapsulados. Los objetos combinan procedimientos y datos en una misma entidad. Un objeto tiene estado, comportamiento y una identidad. El estado del objeto comprende las propiedades estáticas del objeto más los valores actuales de cadauna de esas propiedades.

  3. Abstracción • La abstracción es una de las formas fundamentales con que los seres humanos se enfrentan a la complejidad. “la abstracción proviene de un reconocimiento de las similitudes entre ciertos objetos, situaciones o procesos en el mundo real, y la decisión de concentrarse en esas similitudes y de ignorar por el momento las diferencias”. • “un concepto se puede considerar una abstracción sólo si puede ser descripto, entendido y analizado independientemente del mecanismo que finalmente se use para realizarlo”. • “Una abstracción denota las características esenciales de un objeto que lo distinguen de todas las otras clases de objetos y que por lo tanto proporcionan límites conceptuales bien definidos, con relación a la perspectiva del observador”.

  4. Mensaje • Un mensaje consiste en el nombre de una operación y de los argumentos por ella requeridos. • Los mensajes constituyen el medio por el cual los objetos se comunican con el fin de lograr una acción cooperativa. • Cuando un objeto envía un mensaje a otro objeto, el emisor le está requiriendo al receptor que realice la operación nombrada y (posiblemente) devolverle alguna información. • Cuando el receptor recibe el mensaje, realiza la operación requerida de la formo en que sepa hacerla. • La petición que hace el emisor no especifica cómo debe ser realizada la operación. Tal información está siempre oculta para el emisor.

  5. Encapsulamiento • La abstracción de un objeto debería preceder las decisiones sobre su implementación. Una vez que una implementación ha sido seleccionada, debería ser tratada como un secreto de la abstracción y permanecer oculta al resto de los objetos. Ninguna parte de un sistema complejo debería depender de los detalles internos de alguna otra parte. Mientras la abstracción ayuda a la gente a pensar qué es lo que está haciendo, el encapsulamiento permite que se hagan cambios en los programas en forma confiable y con un esfuerzo limitado. • La abstracción y el encapsulamiento son conceptos complementarios, la abstracción se concentra en la visión exterior de un objeto y el encapsulamiento evita que los objetos clientes accedan a su visión interna, donde el comportamiento de la abstracción es implementado. El encapsulamiento provee barreras explícitas entre diferentes abstracciones. • “Encapsulamiento es el proceso de esconder todos los detalles de un objeto que no contribuyen a sus características esenciales”.

  6. Clase • Se dice que los objetos que comparten el mismo comportamiento pertenecen a la misma clase. Una clase es una especificación genérica para un número arbitrario de objetos similares. • Las clases nos permiten describir en un lugar el comportamiento genérico de un conjunto de objetos, y entonces crear objetos que se comporten en esa forma cuando los necesitemos. • Mientras que un objeto es una entidad concreta que existe en el tiempo y el espacio, y que lleva a cabo un determinado rol dentro del sistema en general; una clase representa sólo una abstracción, la “esencia” de un objeto, que captura la estructura y el comportamiento de todos los objetos que a ella pertenecen.

  7. Distintos Niveles de Detalle de Clases

  8. Ejemplo

  9. Resolución de Problemas con OO Problema: Quiero enviar un paquete a una persona de otra ciudad. Opciones: • Hacerlo yo mismo • Descomposición en sub problemas – programación estructurada • Delegar el envío a alguien (por ej. Correo) • Realizar un encargo – Programación Orientada a Objetos

  10. Conceptos Básicos • Todo es un objeto • Los objetos se comunican entre si por medio de mensajes • Cada objeto tiene un estado • Un objeto es un caso particular de una clase (instancia) • Las clases definen el comportamiento de un conjunto de objetos

  11. Solución Orientada a Objetos • Se busca un objeto capaz de enviar un paquete • Le envió un mensaje con mi solicitud • El objeto se hace responsable de realizar mi pedido • Para ello utiliza un algoritmo que no tengo por que conocer

  12. Consecuencias • Un programa orientado a objetos se estructura como un conjunto de agentes que interactúan (colección de objetos) • Cada objeto da un servicio que es utilizado por otros objetos (reutilización) • La acción se inicia con la transmisión de un mensaje al objeto responsable de realizarla • Si el receptor acepta el mensaje, acepta la responsabilidad de realizar la acción solicitada • El receptor puede utilizar cualquier técnica que logre que el objetivo deseado.

  13. Relaciones Entre Clases • Existen tres tipos de relaciones entre clases • Jerárquicas de herencia o ensamble • Contractuales , de colaboración o asociación

  14. Jerarquía

  15. Herencia

  16. Herencia – Ejemplo Indica que una subclase hereda los métodos y atributos especificados por una Súper clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Súper Clase

  17. Agregación: • Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comúnmente llamada Composición (el Objeto base se construye a partir del objeto incluido, es decir, es "parte/todo"). • Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comúnmente llamada Agregación (el objeto base utiliza al incluido para su funcionamiento).

  18. Polimorfismo

  19. Polimorfismo • El polimorfismo se define como una misma operación tomando diferentes formas. • Una operación se considera polimórfica si ésta se implementa en diferentes clases de forma diferente. • Ejemplo: Para las clases Archivo-ASCII y Archivo-PostScript pueden existir diferentes métodos para implementar la operación Imprimir. Estos métodos corresponden a la misma operación Imprimir, pero se implementan de diferentes formas. El Archivo-ASCII imprime el texto en ASCII, mientras que el Archivo-PostScript requiere un interpretador PostScript. • Una operación también se considera polimórfica si ésta se implementa en una misma clase por diferentes métodos, con diferente número y tipo de argumentos. • Ejemplo: La operación Imprimir de la clase Archivo implementada con diferentes métodos Imprimir conteniendo diferente número de argumentos se considera polimórfica. • Con polimorfismo el transmisor de un mensaje no necesita saber la clase del objeto receptor

More Related