miércoles, 10 de octubre de 2012

Bridge **


Cuando se especifica un diseño usando Layers o Domain Object...
… debemos tener en cuenta que la implementación de los objetos puede variar independientemente de sus interfaces.

✦✦✦

Un objeto puede tener una de varias implementaciones diferentes. La diferencia entre estas implementaciones podría ser específico de la plataforma, o una decisión de ejecución. La utilización de la herencia para separar el interfaz y la implementación, sin embargo, puede exponer el cliente del objeto a las decisiones sobre su implementación.

La herencia es un acercamiento típico a la separación del interfaz y la implementación: una interfaz declara la funcionalidad visible del objeto, e implementa los métodos declarados en la interfaz. De ser accesado vía la clase concreta, no obstante, existe un acoplamiento que se convierte en un pasivo en la lucha para un diseño estable: el código de cliente ahora depende del tipo de aplicación subyacente. Si se accede constantemente a través de la interfaz, los usuarios de objeto no se verán afectados por los cambios en la clase de implementación subyacente, pero no están libres de todas las dependencias de la implementación: en el momento de la creación, el cliente debe tomar una decisión sobre el tipo subyacente, que puede estorbar y complicar el código de cliente.

Por lo tanto:

Dividir el objeto en dos partes: una abstracción handle que ofrece una interfaz y una jerarquía de impulsor separada que proporciona las distintas implementaciones para el cuerpo. 

NOTA
Tipo: Estructura
Desacopla una clase abstracta de su implementación para que puedan variar independientemente.

No hay comentarios:

Publicar un comentario