Interfaz XMLizable y modelo de componente

Al ir adquiriendo conocimientos sobre la arquitectura y el diseño del motor de promociones, encontrará reiteradamente objetos que implementan la interfaz XMLizable. Esta es una interfaz fundamental que sirve de base para el modelo de componente que emplea el motor de promociones.

La interfaz XMLizable declara que los objetos de las clases que implementa esta interfaz se pueden serializar en un documento XML, y se pueden deserializar de un documento XML. Estas dos acciones se definen como métodos en la interfaz.

Un ejemplo de objeto que implementa esta interfaz es CategoryFilter. CategoryFilter filtra un LineItemSet dado y devuelve un subconjunto de este LineItemSet de entrada, de forma que todos los artículos en el LineItemSet de salida pertenecen a categorías permitidas por el objeto de filtro. El siguiente diagrama muestra el formato XML de un CategoryFilter:

aquí va una imagen

Notas:

  1. El nombre del código vincula este elemento XML con una interfaz de objetos de negocio.
  2. Este atributo especifica la clase de implementación.
  3. El contenido de este elemento XML captura los datos de configuración para esta instancia del objeto de negocio.

En este diagrama, el elemento Filter indica que este objeto implementa la interfaz Filter y, por consiguiente, sigue el contrato según lo especificado por la interfaz. Su clase de implementación es la clase CategoryFilter. La implementación define el comportamiento de los objetos de esta clase. El cuerpo del elemento Filter especifica una categoría incluida: Jersey de la tienda 201. El cuerpo del elemento Filter sólo lo interpreta CategoryFilter. Sabe cómo recuperar un objeto CategoryFilter basándose en este contenido del elemento Filter. El contenido puede considerarse como la configuración del objeto CategoryFilter.

La combinación de interfaz, implementación y elemento XML proporciona un objeto de negocio con el contrato de interacción, comportamiento y configuración, y forma la base de todos los componentes personalizables del motor de promociones.

Los objetos que implementan la interfaz XMLizable deben proporcionar un constructor predeterminado público.