Caracteristicas de las poo

Solo disponible en BuenasTareas
  • Páginas : 5 (1049 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de agosto de 2010
Leer documento completo
Vista previa del texto
Herencia múltiple
La composición (también llamada herencia múltiple) es la segunda vía para crear nuevas clases a partir de las existentes. Por composición se entiende la capacidad que presenta la POO de ensamblar un nuevo tipo (clase) cuyos elementos o piezas son otras clases. Es posible declarar clases derivadas de las existentes especificando que heredan los miembros de una o más clasesantecesoras. Siguiendo con el símil de la carta circular, la composición equivaldría a escribirla reutilizando trozos de cartas anteriores. Es clásico el ejemplo de señalar que podríamos crear una clase "coche" declarando que tiene un motor y cuatro ruedas, bastidor, aire acondicionado, etc, elementos estos pertenecientes a la clase de los motores, de las ruedas, los bastidores y los sistemas declimatización respectivamente. Este sistema tiene también sus ventajas e inconvenientes, pero es muy flexible, ya que incluso pueden cambiarse los componentes en tiempo de ejecución.

HERENCIA
Es una relación entre clases en la cual una clase comparte la estructura y comportamiento definido en otra clase (Grady Booch) Cada clase que hereda de otra posee:
Los atributos de la clase base ademásde los propios
Soporta todos o algunos de los métodos de la clase base Una subclase hereda de una clase base La herencia (en la POO) es una potente arma que podemos utilizar para varias cosas, entre ellas, por ejemplo, ahorrar líneas de código heredando de otras clases, compartiendo variables miembro o función miembro. También podemos generar superclases abstractas para definir comportamientosgenéricos que necesitemos.
La herencia es una de las características que más se hace notar a la hora de escribir código, o reutilizar código de otros programadores.

Abstracción
denota las características esenciales de un objeto, donde se capturan sus comportamientos.Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y"comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción.El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunespara definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.

Delegación
Cuando trabajamos con clases es una buena práctica que una clase realice una única función. De manera que lasclases que deban realizar funciones complejas estarán formadas a partir de una asociación de diversas pequeñas clases en las que delegará cada funcionalidad en concreto.
Este sería un ejemplo simple de una relación de asociación y de delegación entre clases:
Aqui vemos como la clase "Foro" está delegando toda la funcionalidad del método "moderar" al objeto de clase "Zguillez", haciendo de estamanera que toda la implementación esté en esa clase dejando la clase principal más limpia y ordenada. Esto nos permite una mayor reutilización de nuestras clases.
El problema que nos encontramos aquí es que se ha creado una relación de dependencia muy grande entre estas dos clases. La clase "Foro" tiene una referencia directa a la clase "Zguillez" y necesita estrictamente de esa clase para funcionar.De manera que si tuviésemos (por requisitos de la aplicación o por reutilización del código) que cambiar la implementación de la función "moderar" tendríamos que reescribir la clase "Zguillez" para cambiar su implementación concreta o reescribir la clase "Foro" para delegar esa función a la clase "Zah" (por ejemplo). Con lo que hace estas clases poco reutilizables.

Polimorfismo
Esta...
tracking img