Patrones creacionales - xaviQuevedo/Proyecto2B GitHub Wiki
Los patrones de creación proporciona diferentes maneras de la creación de objetos.
- Nombre; Abstract Factory
- Nivel de aplicación; Objetos
- Definición; Patrón de diseño que provee una interfaz para crear familias de objetos relacionados o dependientes sin especificar su clase concreta.7
- Donde utilizarlo; Cuando se desee conseguir un sistema independiente en el aspecto de creación, como se componen y la representación de los productos. Desee un sistema con múltiples familias de productos. Un ejemplo de Abstract Factory se ve en el juego popular de Super Mario Bros Maker y su evolución en el tiempo, enfocado en el ámbito visual donde se combina gráficos, por temas de distintos dispositivos en los que puede jugar Mario Bros, por ejemplo las tuberías, las monedas etc.
- Beneficios; Configuración de múltiples familias de diferentes objetos para la utilización en conjunto. Facilicita el cambio dado que es fabrica " Proporciona una biblioteca de clases de los productos solo mostrando las interfaces y las implementaciones ocultándolas."
- Inconvenientes; Se crean sistemas altamente dependientes; por ejemplo cuando se añade un nuevo o se cambian los productos que existen afecta a las familias de productos ya creadas."
- Estructura UML Se presenta el diagrama UML
![]()
=====================================
- Nombre; Singleton
- Nivel de aplicación; Objetos
- Definición; Es un patrón que garantiza que una clase "objeto" tenga una única instancia, proporcionando un acceso global a la clase instanciada.
- Donde utilizarlo; Un ejemplo de utilización puede ser para registros de información por ejemplo los "logs" de un sistema, colas de impresión
- Beneficios; Mayor control de acceso a recursos compartido (archivos, bases de datos etc.)
- Inconvenientes; No permite que las ejecuciones sean en paralelo, dado que enfoca a los recursos compartidos impidiendo que se haga de forma paralela, disminuyendo la capacidad de la aplicación generando cuellos de botellas.
Al tener que instanciar las variables globales, se puede caer instanciaciones innecesarias (consumo de cache).
- Estructura UML Se presenta el diagrama UML
![]()