Manija - Cuerpo

 
 
Clasificación Intención Otros nombres Motivación Aplicabilidad Estructura Participantes
Colaboraciones Consecuencias Patrones Relacionados  
 

Clasificación

Idioms en C++
 

Intención

Dividir tareas de administración de un objeto (como por ejemplo, la administración de su memoria) de su representación.
 

Otros nombres

Handle Body
 

Motivación

El objetivo de este idiom es dividir la funcionalidad de una clase compleja en por lo menos dos, una con tareas de administración sobre la otra, la cual realiza el trabajo. dos ejemplos particulares de este idiom son el conteo de referencias y el Sobre-Carta.
 

Aplicabilidad

El Idiom Manija-Cuerpo puede ser usado para descomponer una abstracción compleja en varias más pequeñas y manejables. Puede reflejar recursos compartidos por múltiples clases que lo accesan.
 

Estructura

Las clases en este Idiom generalmente están relacionadas como se muestra a continuación:
Relación entre las clases Handle y Body
La clase Handle contiene una referencia a un objeto de tipo Body. Handle tiene su propio comportamiento de administración, no presente en Body. El comportamiento de Body es reflejado desde Handle, para que pueda ser utilizado. Pueden existir varios objetos Handle compartiendo el mismo Body.
 

Participantes

  • Handle. Clase administradora. Refleja el comportamiento de Body y realiza tareas adicionales
  • Body. Clase manejada. Tiene el comportamiento requerido por el usuario
 

Colaboraciones

La clase Handle refleja el comportamiento requerido presente en Body. Generalmente tiene métodos idénticos a los presentes en Body, que delegan la responsabilidad en ellos.
 

Consecuencias

  1. Se dividen la funcionalidad de administración y la funcionalidad requerida por el usuario
  2. El Body puede ser compartido por varios Handles, agregando eficiencia a la representación.
  3. Puede ser complicada la evolución: Deben propagarse siempre los nuevos métodos en Body hacia Handle y tener cuidado de recompilarlas ambas ante cambios en una de ellas.

 

Patrones relacionados