Skip to main content

Conceptos Clave en la Teoría de Objetos

Encapsulación

La encapsulación (encapsulamiento) es el término formal que describe el conjunto de métodos y datos dentro de un objeto de forma que el acceso a los datos se permite solamente a través de los propios métodos del objeto. Ninguna otra parte de un programa orientado a objetos puede operar directamente sobre los datos de un objeto. La comunicación entre un conjunto de objetos sucede exclusivamente por medio de mensajes explícitos.

Abstracción

La orientación a objetos fomente que los programadores y usuarios piensen sobre las aplicaciones en términos abstractos. Comenzando con un conjunto de objetos , los programadores buscan un factor de comportamiento común y lo sitúan en superclases abstractas. Las bibliotecas de clases proporcionan un depósito para los elementos comunes y reutilizables.  La maquinaria de la herencia mantiene automáticamente las relaciones entre las clases dispuestas jerárquicamente en la biblioteca de clases.  Cada nivel de abstracción facilita el trabajo de programación porque hay disponible más cantidad de código reutilizable.

Polimorfismo

Los objetos actúan en respuesta a los mensajes que reciben. El mismo mensaje puede originar acciones completamente diferentes al ser recibido por diferentes objetos. Este fenómeno se le conoce como polimorfismo. Con el polimorfismo el usuario puede enviar un mensaje genérico y dejar los detalles exactos de la realización para el objeto receptor. El mensaje imprimir, por ejemplo, al ser enviado a una figura o diagrama invocará diferentes métodos de impresión que en el caso de enviar el mismo mensaje imprimir a un documento de texto.

El polimorfismo esta fomentado por la maquinaria de la herencia. Es muy normal almacenar los protocolos para funciones de utilidad como “imprimir” en la posición más alta que sea posible dentro de la jerarquía las clases. Las variaciones necesarias en el comportamiento “imprimir” se almacenan en niveles más bajos de la jerarquía para sobrescribir los métodos más generales cuando sea necesario. De esta forma, los objetos están listos y pueden responder apropiadamente a mensajes de utilidad como “imprimir” mientras que el método que realiza la función de impresión puede existir en la clase inmediata del objeto o varios niveles por encima de la clase del objeto.

Persistencia

La persistencia de refiere a permanencia de un objeto, es decir, al tiempo durante el cual se asigna espacio accesible en la memoria de la computadora. En la mayoría de los lenguajes orientados a objetos, se crean modelos de clases a medida que el programa se ejecuta. Algunos de estos modelos se necesitan solamente por un breve periodo de tiempo. Cuando un objeto ya no es necesario es destruido y recuperado el espacio de memoria que tenía asignado. La recuperación automática del espacio de memoria denominada normalmente recolección de basura.

Los objetos almacenados permanentemente se denominan persistentes.

Resumen AOO

El método orientado a objetos promete un nivel mayor de abstracción que el método soportado por los conceptos tradicionales de procedimientos y datos. En la orientación a objetos, los procedimientos y datos se agrupan para formar una entidad denominada objeto. A diferencia de los datos pasivos y de los sistemas tradicionales, los objetos pueden actuar. Las acciones son desencadenadas por los mensajes enviados a un objeto y procesadas a continuación por procedimientos internos denominados métodos.

Los objetos pueden ser bastantes similares en sus posibilidades. Las descripciones de un conjunto de objetos similares, es una clase. Un modelo o instancia de una clase es un objeto real descrito por una clase. La abstracción posterior es estimulada mediante el empleo de jerarquías de clases. Para reutilizar los métodos definidos previamente, las jerarquías de clases cuentan con los mecanismos orientado a objetos de la herencia.

Asimilar las ideas orientadas a objetos significa aprender las diferencias, así como las similitudes entre este método y la programación convencional.

Ventajas.

Las principales ventajas del método orientado a objetos descansan en su posibilidad de hacer frente a los dos temas esenciales de la ingeniería del software: gestión de la complejidad y mejora de la productividad en el proceso de desarrollo de software.

La programación orientada a objetos conduce estos temas fomentando las siguientes estrategias de desarrollo del software:

  • Escribir código reutilizable.
  • Escribir código posible de mantener.
  • Depurar módulos de códigos existentes.
  • Compartir código con otros.

La complejidad se reduce y la productividad se mejora cuando se puede volver a utilizar un código de alta calidad.

La programación orientada a objetos no sólo el proceso de desarrollo del software sino también la flexibilidad y utilidad del software resultante. El proceso de diseño se convierte en algo más intuitivo e inspeccionable porque los elementos del software se corresponden con los elementos del ámbito real de la aplicación. El proceso de programación fomenta por sí mismo el equipo en trabajo y la reutilización y depuración de código.

La reutilización es la clave para aumentar la productividad ante el resto de la complejidad creciente. Las clases encapsulan módulos de código de forma que las tareas complejas pueden ser descompuestas satisfactoriamente. Apoyados por conceptos orientados a objetos, como el polimorfismo y la abstracción, los programadores pueden ampliar las bibliotecas de clases o los marcos estructurales en vez de escribir el código partiendo de la nada.

Mayor fiabilidad ya que reduce el riesgo de error humano. Las estructuras permanecen intactas y los cambios se programa de forma natural a través de las jerarquías de clases.

La flexibilidad es también un sello característico de la orientación a objetos Los programadores están libres de las limitaciones de los tipos de datos preestablecidos, permitiendo la aplicación y la unión de las aplicaciones heterogéneas.

Puntos clave.

Las principales ventajas de la orientación de objetos son la mejora de la gestión de la complejidad y el aumento de la productividad del programador.

Las clases abstractas dividen los problemas complejos en módulos sencillos y ocultan los detalles de la realización. La claridad conceptual está presente en el diseño, en programa y en la aplicación final.

Las bibliotecas de clases y los marcos estructurales proporcionan una excelente plataforma para el desarrollo de las aplicaciones orientadas a objetos y la reutilización del código.