gravatar

Conceptos básicos de la POO - Parte 2



Mensajes

Los conceptos de objetos y mensajes tal vez sean los más importantes para comenzar a tener una visión clara del paradigma de programación orientada a objetos.

Un programa orientado a objetos se constituye a partir de un conjunto de objetos que colaboran entre sí para realizar las diferentes tareas que se definieron previamente como requisitos. Para poder colaborar mutuamente los objetos se comunican entre sí mediante mensajes. Como respuesta a la recepción de un mensaje un objeto responde haciendo algo, es decir, los mensajes provocan que los objetos se comporten de maneras específicas.

El comportamiento está asociado a los mensajes, estos últimos son los disparadores de los diferentes comportamientos de un objeto.

Para situar al lector respecto de la programación modular y estructurada resulta útil mencionar que los métodos son bloques de código, es decir, funciones y procedimientos, que los mensajes son sus nombres y parámetros, y que el envío de un mensaje implica que un objeto realiza una llamada a un método de otro objeto. A partir de aquí podrá deducir que para enviar un mensaje en muchas situaciones resultará necesario especificar argumentos.

Aunque en este texto se intenta relacionar cada concepto de la programación orientada a objetos con el concepto equivalente de la programación modular y estructurada (cuando esta coincidencia existe) recuerde que la POO enfatiza el diseño. Es decir, que no es posible escribir un programa orientado a objetos si no se lo diseña orientado a objetos. Para poder diseñar una aplicación según la POO debe pensar en términos de objetos y ello resulta muy difícil si antes no aprende la terminología y comprende los conceptos involucrados.

A continuación, un ejemplo del envío de un mensaje a un objeto:

lassie.ladrar() ... lassie.ladrar(4)

En el primer caso, se envía al objeto lassie el mensaje ladrar. En el segundo caso, al mismo objeto se le envía el mismo mensaje, excepto que esta vez el mensaje incluye el argumento 4 que le indica al objeto lassie que debe ladrar cuatro veces.


Protocolo de mensajes o interfaz

Todos los mensajes que entiende un objeto constituyen su interfaz de comunicación con el exterior, o sea, con los demás objetos que conforman ese programa. Esa interfaz o protocolo de mensajes tiene como propósito permitir el diálogo mediante el cual los objetos colaboran para realizar diferentes tareas.

El protocolo de mensajes o interfaz es el modo que tienen los objetos de exhibir su comportamiento a los demás objetos para que puedan utilizar los servicios que implementa. Esta visión de los objetos como clientes y servidores probablemente le resultará familiar y le permitirá relacionar este concepto con sus conocimientos previos.

Un posible protocolo de mensajes para el objeto lassie sería:

ladrar(Optional ladridos AS Integer)
  morder()
  moverCola(Optional cantidadMovimientos AS Integer)
  comer(almuerzo AS Alimento)
  beber(agua AS Bebida)

Como puede observar, los mensajes que entenderá todo objeto del mismo tipo que el objeto lassie estarán determinados por los métodos que se definan para ese tipo de objetos.

Los nombres de los métodos, sus argumentos (si es que existen) y sus tipos de datos se determinan como parte del diseño del programa. De hecho, buena parte del diseño de un programa orientado a objetos consiste en definir qué tipos de objetos lo constituyen y cómo sus objetos se comunicarán entre ellos.

Que los objetos posean una interfaz de mensajes tiene como consecuencia que su implementación quede oculta, algo sobre lo que profundizaremos en breve.



Los comentarios están habilitados para que los lectores puedan participar en la corrección del libro, realizar preguntas puntuales o sugerencias. Todo comentario fuera de estos objetivos será eliminado. Por favor, tenga en cuenta lo siguiente:

- Cumpla las normas de etiqueta.

- Realice críticas constructivas.

- No sea redundante.