Actividad de Patrones de Diseño: Singleton y Decorador en C
Descripción de la Actividad
Objetivo: Aplicar los patrones de diseño Singleton y Decorador para construir un sistema de configuración de productos personalizados en una tienda en línea.
Escenario
Una tienda en línea que permite a los usuarios personalizar productos con diferentes opciones y accesorios, asegurando que la configuración de las opciones sea única (Singleton) y que se puedan agregar características adicionales dinámicamente (Decorador).
Tareas
Implementar el patrón Singleton para manejar una única instancia de configuración del producto.
Utilizar el patrón Decorador para permitir añadir características adicionales a los productos de manera flexible.
Crear clases para productos básicos y decoradores concretos que representen características opcionales.
Desarrollar una interfaz gráfica de usuario donde los clientes puedan personalizar sus productos y ver el precio final.
Implementación
1. Definición de Clases
Clase ConfiguracionProducto: (Singleton)
Atributos privados para almacenar la configuración del producto.
Método estático para obtener la instancia única.
Interfaz Producto:
Método getDescripcion que devuelve una descripción del producto.
Método getPrecio que devuelve el precio del producto.
Clase ProductoBase: Implementa Producto.
Descripción básica y precio inicial del producto.
Clases Decorador: (Decorador)
ColorDecorador: Añade opciones de color al producto.
AccesoriosDecorador: Añade accesorios como estuches, cargadores, etc.
2. Lógica de Interacción
Los usuarios inician la configuración de un producto seleccionando un ProductoBase.
Añaden características mediante decoradores, los cuales ajustan la descripción y el precio del producto base conforme se agregan.
La configuración del producto se maneja mediante la instancia única de ConfiguracionProducto, asegurando que todas las modificaciones se reflejan en tiempo real y son coherentes.
3. Prueba del Sistema
Instanciar la clase ConfiguracionProducto y asegurarse de que siempre se obtenga la misma instancia.
Crear un ProductoBase y decorarlo con diferentes opciones para verificar que los precios y descripciones se actualizan correctamente.
Interactuar con la interfaz de usuario para personalizar un producto y validar que el sistema responde como se espera.
Objetivo de Aprendizaje
Demostrar el uso del patrón Singleton para manejar instancias únicas en situaciones donde es crucial mantener un estado consistente.
Explorar cómo el patrón Decorador ofrece flexibilidad en la adición de funcionalidades sin modificar las clases existentes, facilitando la extensión de objetos de manera dinámica.
Aplicar estos patrones en un contexto práctico de comercio electrónico, mejorando la experiencia de personalización del usuario.
Actividad de Patrones de Diseño: Singleton y Decorador en C
Descripción de la Actividad
Objetivo: Aplicar los patrones de diseño Singleton y Decorador para construir un sistema de configuración de productos personalizados en una tienda en línea.
Escenario
Una tienda en línea que permite a los usuarios personalizar productos con diferentes opciones y accesorios, asegurando que la configuración de las opciones sea única (Singleton) y que se puedan agregar características adicionales dinámicamente (Decorador).
Tareas
Implementación
1. Definición de Clases
Clase
ConfiguracionProducto
: (Singleton)Interfaz
Producto
:getDescripcion
que devuelve una descripción del producto.getPrecio
que devuelve el precio del producto.Clase
ProductoBase
: ImplementaProducto
.Clases Decorador: (Decorador)
ColorDecorador
: Añade opciones de color al producto.AccesoriosDecorador
: Añade accesorios como estuches, cargadores, etc.2. Lógica de Interacción
ProductoBase
.ConfiguracionProducto
, asegurando que todas las modificaciones se reflejan en tiempo real y son coherentes.3. Prueba del Sistema
ConfiguracionProducto
y asegurarse de que siempre se obtenga la misma instancia.ProductoBase
y decorarlo con diferentes opciones para verificar que los precios y descripciones se actualizan correctamente.Objetivo de Aprendizaje