Ubicacion - PowerSystem2024/CapybaraFilms_ProyectoTercerSemestre GitHub Wiki
La clase Ubicacion
es un value object que representa la posición física de una butaca en el cine, encapsulando las coordenadas de fila, columna y referencia a la butaca.
- Encapsular coordenadas de posición (fila, columna).
- Mantener referencia al número de butaca.
- Proporcionar métodos de acceso y modificación controlados.
- Servir como value object para posicionamiento.
Atributo | Tipo | Propósito | Rango |
---|---|---|---|
fila |
int | Número de fila en la sala | 1-12 |
columna |
int | Número de columna en la sala | 1-12 |
butaca |
int | Número identificador de la butaca | Variable |
ubicacion = Ubicacion(6, 8, 45)
fila = ubicacion.get_fila() # 6
columna = ubicacion.get_columna() # 8
butaca = ubicacion.get_butaca() # 45
Fuente: Ubicacion.py:12-13
ubicacion.set_fila(7) # Cambiar fila
ubicacion.set_columna(9) # Cambiar columna
ubicacion.set_butaca(50) # Cambiar número de butaca
Fuente: Ubicacion.py:16-17
def __str__(self):
return f"Ubicacion(fila={self.fila}, columna={self.columna}, butaca={self.butaca})"
Fuente: Ubicacion.py:33-34
graph TD
CineServices["CineServices
_solicitar_ubicacion"] --> UbicacionNode
ButacaDAO --> UbicacionNode
UbicacionNode["Ubicacion - Value Object
- fila: int
- columna: int
- butaca: int
+ get_fila
+ get_columna"]
UbicacionNode --> Butaca["Butaca
- ubicacion: Ubicacion"]
- Con Butaca: Encapsula la posición física de cada butaca.
-
Con CineServices: Utilizado en
_solicitar_ubicacion()
para capturar coordenadas del usuario. - Con ButacaDAO: Persistencia y consultas de ubicaciones de butacas.
- Representa un concepto de valor sin identidad propia.
- Encapsula coordenadas relacionadas en una sola estructura.
- Proporciona inmutabilidad conceptual para posiciones.
- Métodos getter/setter para acceso controlado.
- Representación textual clara para debugging.
- Separación clara entre datos y comportamiento.
Ambos tipos (FormatoPelicula
y Ubicacion
) demuestran diferentes enfoques en el diseño de tipos de dominio: FormatoPelicula
como enumeración con manejo robusto de errores y Ubicacion
como value object simple pero efectivo para encapsular coordenadas.