candy - PowerSystem2024/CapybaraFilms_ProyectoTercerSemestre GitHub Wiki
La entidad Candy
representa los productos de confitería disponibles en el cine, gestionando los diferentes tipos de combos y proporcionando funcionalidad de selección interactiva.
- Encapsular tipos de combos de confitería.
- Proporcionar métodos de acceso a información del combo.
- Implementar selección interactiva de combos.
- Integrar con enumeraciones de tipos de candy.
Atributo | Tipo | Propósito | Validación |
---|---|---|---|
tipo | TipoCandy |
Tipo de combo (enum) | Valores predefinidos |
candy = Candy(TipoCandy.MEDIANO)
tipo_combo = candy.get_tipo()
print(f"Tipo: {tipo_combo.get_nombre()}")
Fuente: Candy.py:7-8
def __str__(self):
return f"Candy: {TipoCandy.get_nombre()}" # Muestra el nombre del candy
Fuente: Candy.py:10-11
combo_seleccionado = Candy.obtener_combo()
# Muestra menú interactivo y retorna objeto Candy
print(f"Combo elegido: {combo_seleccionado.get_tipo().get_nombre()}")
Fuente: Candy.py:13-32
La entidad Candy
implementa validación en la selección interactiva:
-
Entrada inválida: Captura
ValueError
para entradas no numéricas. - Rango inválido: Valida que la opción esté dentro del rango de combos disponibles.
- Bucle de reintento: Permite múltiples intentos hasta obtener entrada válida.
graph TD
Reserva --> CandyNode
CandyDAO --> CandyNode
CineServices --> CandyNode
subgraph CandySubgraph
CandyNode["Candy
- tipo: TipoCandy
+ obtener_combo"]
end
CandyNode --> TipoCandy["TipoCandy
CHICO/MEDIANO/GRANDE
+ get_nombre
+ get_precio"]
- Con TipoCandy: Enum que define tipos y precios de combos.
- Con Reserva: Múltiples candies pueden asociarse a una reserva.
- Con CandyDAO: Persistencia y consultas del catálogo de combos.
- Con CineServices: Selección de combos en el flujo de reserva.
- El método estático
obtener_combo()
actúa como factory para crear instancias. - Encapsula la lógica de selección y creación de objetos.
- Utiliza
TipoCandy
para garantizar consistencia en tipos de combos. - Accede a precios y nombres a través de métodos del enum.
- Implementa interfaz de usuario directamente en la entidad.
- Maneja validación y reintento de entrada de usuario.
Ambas entidades (Sala
y Candy
) demuestran diferentes enfoques de diseño: Sala es una entidad simple y directa, mientras que Candy
incorpora lógica de interacción más compleja, mostrando la flexibilidad del diseño de dominio para adaptarse a diferentes necesidades del negocio.