INVESTIGAR LOS SIGUIENTES PATRONES

Abstract Factory

Composite

¿Que es? ✅

Es una solución elegante a este problema, de la que además resulta en una implementación más sencilla.

¿Para que sirve? ✅

¿A que clasificación pertenece? ✅

Patrones estructurales

Partes o componentes ✅

Ejemplo ✅

La clave de este patrón es una clase abstracta que representa los objetos simples y su contenedor. Para el ejemplo de las aplicaciones gráficas esa clase es Graphic. Esta clase tiene operaciones como dibujar así como operaciones para acceder y gestionar los hijos. Las clases hijas como Line, Rectangle y Text son los objetos simples y la clase Picture sería el contenedor. La clase Picture define una agregación de objetos Graphic, de forma que los objetos Picture pueden formar otros objetos Picture recursivamente.

El patrón Composite se usa cuando:


Cuando se quieren representar jerarquías de objetos
Cuando queremos que los clientes puedan ignorar la diferencia entre composiciones de objetos y objetos individuales.
El patrón Composite describe cómo usar la composición recursiva para que el cliente no tenga que hacer distinciones.

Existe una interfaz Component que define una operación
Dicha interfaz es implementada por dos clases, Leaf y Composite
La clase Leaf contiene una implementación específica de la operación
La clase Composite contiene un número variable de referencias (children) a instancias de la interfaz Component. Dichas instancias pueden ser Leaf o, de nuevo Composite, permitiendo generar las estructuras en forma de árbol que se mencionan en la definición
La implementación de la operación en Composite delegará en la operación de cada una de las instancias “child”
Las instancias de Composite están “vivas”, es decir, mediante sus operaciones add y remove permiten configurar la jerarquía que contiene

¿Para que sirve? ✅

¿Que es? ✅

¿A que clasificacion pertenece? ✅

Partes o componentes ✅

Ejemplo ✅

El patrón Abstract Factory nos permite crear, mediante una interfaz, conjuntos o familias de objetos (denominados productos) que dependen mutuamuente y todo esto sin especificar cual es el objeto concreto.

Este patrón se puede aplicar cuando:


Un sistema debe ser independiente de como sus objetos son creados. Un sistema debe ser 'configurado' con una cierta familia de productos.
*Se necesita reforzar la noción de dependencia mutua entre ciertos objetos.

FabricaAbstracta: Define un conjunto de métodos (interfaz) para la creación de productos abstractos.
FabricaConcreta1/2: Implementa la interfaz de la FabricaAbstractapara la creación de los distintos productos concretos.
ProductoAbstractoA/B: Define la interfaz de los objetos de tipo ProductoA/B.
ProductoConcretoA1/A2/B1/B2:Implementan su respectiva interfaz representando un producto concreto.

Es un patrón de diseño para el desarrollo de software. Provee una interfaz para crear familias de objetos relacionados o dependientes entre ellos sin especificar una clase en concreto

click to edit