next up previous contents
Next: Patrones de diseño para Up: Concurrencia y Distribución Previous: Prevenir

Programación orientada a objetos


Programar con objetos tiene muchas ventajas que no repetiremos aquí. Lo que destaca, a lo mejor, es el uso abstracto de objeto, es decir, se define un objeto por su compartamiento y menos por su estado.

Desde siempre, el concepto de concurrencia fue parte de la programación orientada a objetos (ya con Simula67). Ha tenido casi un renacimiento con la aparencia de Java.

Las operaciones con objetos se puede clasificar en cuatro grupos:

Normalmente también se tiene que destruir un objeto al final de su tiempo de vida. Aunque eso no se tiene que hacer necesariamente de forma explícita.

En un nivel de modelación abstracta se distinguen: objetos activos y objetos pasivos.

El modelo de objetos activos describe un objeto como una entidad con vida propia que actua cada vez que recibe un mensaje. La actuación puede ser cualquiera de las operaciones mencionadas arriba.

El modelo de objetos pasivos describe un objeto como un conjunto de datos que se modifica bajo control de una administración externa al objeto. Es como si algún interpretador simulase el comportamiento del objeto.

Ejemplo:

Dentro de un entorno Java, la máquina virtual ejercita el papel del administrador, tratando todos los objetos del programa como objetos pasivos bajo su control. Sin embargo, al mismo tiempo, cada uno de los objetos puede jugar un papel de un objeto activo que no sabe nada sobre el controlador.

Otra ilustración del concepto sería: un objeto activo está ejecutando su propio hilo, mientras un objeto pasivo se manipula dentro de otro hilo.

¿Por qué se dice mandar mensajes?

Usando objetos en el diseño de programas concurrentes los objetos tendrán también propiedades como


next up previous contents
Next: Patrones de diseño para Up: Concurrencia y Distribución Previous: Prevenir
© 2003, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática