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