Está en la página 1de 4

Programación de objetos y clases

Clase:

Dentro de la programación orientada a objetos, las clases son un pilar fundamental. Estas nos van a
permitir abstraer los datos y sus operaciones asociadas como si tuviéramos en frente una caja negra.
La mayoría de los lenguajes de programación modernos incluyen la posibilidad de usar clases y las
ventajas que ello nos aporta.

Una clase es la descripción de un conjunto de objetos similares; consta de métodos y de datos que
resumen las características comunes de dicho conjunto. En un lenguaje de programación orientada
a objetos se pueden definir muchos objetos de la misma clase de la misma forma que, en la vida
real, haríamos galletas (objeto) con el mismo molde (clase) solo que, para entenderlo mejor, cada
galleta tendría igual forma pero es posible que tenga distinto sabor, textura, olor, color, etc.

Dicho de otro modo, una clase es la declaración de un tipo de objeto. Las


clases son similares a los tipos abstractos de datos y equivalen a modelos que describen cómo se
construyen ciertos tipos de objetos. Cada vez que se construye un objeto a partir de una clase
estamos creando lo que se llama una instancia de esa clase. Si quieres saber más sobre los objetos
puedes leer mi artículo ¿Qué son los objetos en la POO y cómo se representan? Por consiguiente,
los objetos no son más que instancias concretas de una clase.

Control de Acceso a Miembros de una Clase en Java

Cuando se definió la clase Publicacion, el campo idPublicacion se pensó para que se generase de
forma automática y de forma coherente. Por tanto cualquier modificación externa sobre este campo
podría dejar al objeto en un estado inconsistente, y podríamos tener dos objetos con el mismo
identificador. Queremos por tanto que este campo sólo se pueda leer y no pueda ser modificado
por ningún otro objeto. Para ello se "oculta" este campo y se proporciona un método público para
poder acceder a su valor:
¿Qué hemos conseguido? Ahora para acceder al valor del campo idPublicacion será necesario
utilizar el método id. Y la única forma de modificar este campo será por medio de métodos internos
a la clase Publicacion .

Estos mecanismos que regulan el acceso se denominan métodos de acceso y se resumen en la


siguiente tabla:

Método Descripción

private Un miembro privado es accesible sólo para la clase en la que está definido.

La propia clase, las subclases y todas las clases dentro del mismo paquete tienen acceso
protected
a los miembros calificados con este método de acceso.

public Todas las clases tienen acceso a los miembros públicos de la clase.

package Sólo las clases del mismo paquete que la clase tienen acceso a los miembros

En los constructores de las clases, se pueden utilizar especificadores de acceso para indicar que
objetos pueden crear ejemplares de su clase: private si ninguna clase puede crear un objeto de su
clase, sólo se podrá crear por medio de métodos públicos de la clase, protected cuando sólo las
subclases pueden crear objetos, public si cualquiera puede crear objetos de esta clase y package-
access cuando sólo desde los objetos pertenecientes al mismo paquete se pueden crear objetos de
esa clase.

Implementación de una clase:

Se pueden implementar módulos de integración para utilizar archivos de clase Java. La utilización
de un archivo de clase Java elimina la necesidad de registro y configuración de componentes de
integración. Además, todas las implementaciones de módulo de integración subyacentes son
transparentes para el producto de gestión de procesos.

Los módulos de integración de clase Java deben implementar la


interfaz psdi.iface.mic.ServiceInvoker. La interfaz Java del invocador de servicios se incluye en el
archivo businessobjects.jar. Incluya la clase Java del módulo de integración en la ruta de clase del
sistema en el tiempo de ejecución.

La interfaz Java del invocador de servicios tiene variaciones de la firma de método siguiente:

public byte[] invoke(Map String,Object metaData, MboRemote sourceMbo,


MboRemote targetMbo, String endPointName) throws MXException, RemoteException;

 metaData es una correlación de las propiedades de nombre y valor que incluye:

o El nombre y la versión del módulo de integración.

o El nombre y el espacio de nombres de la operación de gestión lógica.

o El identificador exclusivo global del producto de gestión de operaciones.

o El nombre del punto final y cualquier propiedad de punto final que se sobrescriba.

 sourceMbo es el objeto de origen que definió en la operación de gestión lógica.

 targetMbo es el objeto de respuesta que definió en la operación de gestión lógica.

 endPointName es el nombre del punto final que se utiliza para la comunicación con el
producto de gestión de operaciones.

Si configura el módulo de integración para implementar varias operaciones de gestión lógica, el


módulo de integración debe determinar a qué operación de gestión lógica se está llamando. En
tiempo de ejecución, el módulo de integración recupera las propiedades LMONAME y
LMONAMESPACE de la correlación de entrada metaData:

import psdi.iface.omp.IMConstants;

String lmoName = metaData.get(IMConstants.LMONAME);

String lmoNamespace = metaData.get(IMConstants.LMONAMESPACE);

El módulo de integración puede recuperar datos de operación de gestión lógica del objeto de origen.
El código de ejemplo siguiente recupera valores de operación de gestión lógica del objeto de origen:

String guid = sourceMbo.getString("GUID");

int packID = sourceMbo.getInt("PACKID");

boolean hasSubs = sourceMbo.getBoolean("HASSUBS");


En el ejemplo, la operación de gestión lógica tiene un atributo de entrada alfanumérico denominado
identificador exclusivo global, un atributo entero denominado PACKID y un atributo booleano
denominado HASSUBS.

Los métodos de invocador de servicios pueden tomar un conjunto de valores MboSetRemote como
entrada de origen en lugar de un solo valor MboRemote. En algunos casos, el módulo de integración
pasa todos los objetos del conjunto de objetos al producto de gestión de operaciones. En otros
casos, el módulo de integración sólo pasa el primer objeto del conjunto. No hay ninguna regla
definida que se aplique al comportamiento del módulo de integración, pero se debe definir
claramente el comportamiento previsto en la descripción de la operación de gestión lógica.