Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión o
creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Puedes deshacer la edición.
Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces publica los cambios para así efectuar la reversión.
Revisión actual |
Tu texto |
Línea 42: |
Línea 42: |
|
| |
|
| == Composite == | | == Composite == |
|
| |
| '''''Intent'''''
| |
|
| |
| Compone objetos en estructuras de árbol para representar jerarquías de parte-todo. Permite que los clientes traten de manera uniforme a los objetos individuales y a los compuestos.
| |
|
| |
| '''''Resumen'''''
| |
|
| |
| La clave del patrón Compsite es una clase abstracta que representa tanto a primitivas como a sus contenedoras. De esta manera se representan estructuras arboreas, con elementos primitivos, de cualquier granularidad y para el cliente es transparente si esta trabajando con elementos primitivos o contenedores. Es uno de los patrones mas usado.
| |
|
| |
| '''''Consecuencias'''''
| |
|
| |
| Donde el código esepre un objeto primitivo, también podrá recibir un objeto compuesto.
| |
|
| |
| Simplifica al cliente quienes no conocen si trabajan con hojas o con estructuras compuestas.
| |
|
| |
| Se pueden añadir nuevos componentes de manera muy simple.
| |
|
| |
| Puede llegar a ser demasiado general. Si necesitaramos ciertas restricciones sobre los componentes de cierto compuesto esto es demasiado complejo.
| |
|
| |
| '''''Implementación'''''
| |
|
| |
| Se pueden mantener referencias explicitas al padre para simplificar recorrido.
| |
|
| |
| Donde se pone el protocolo de manejo de hijos? En la clase abstracta y se genera un error cuando se llama el mensaje sobre un primitivo? o directamente en la subclase compuesto?
| |
|
| |
| Puede pasar que necesitemos cierto orden sobre los elementos del compuesto.
| |
|
| |
|
| == Observer == | | == Observer == |