Aprendre plegats
dijous, de març 10, 2005
 
ES2(40) Anem al cinema?
Considereu l'exemple següent (totes les associacions tenen doble navegabilitat):

Diagrama de classes


amb l'operació que, de moment, té el contracte:
Context Sessió::novaEntrada():Diner
pre: hiHaEntrades()
post: entradesDisponibles = entradesDisponibles@pre-1
post: return = sala.dónaCinema().dónaPreuEntrada()

En el futur, és possible que alguns cinemes vulguin que el preu de l’entrada no sigui el mateix per a totes les sessions, sinó que depengui de la pel·lícula que es projecta a la sessió. Alguns cinemes voldran continuar venent a preu únic, mentre que d'altres voldran vendre a preu diferent, segons quina pel·lícula s'emeti a la sessió.


1. Redissenyeu el sistema aplicant el principi Obert-Tancat (respecte d’aquest possible canvi). Especifiqueu les operacions que siguin noves, o que hagin canviat. Naturalment, no heu d'introduir encara el canvi indicat.


2. Indiqueu quin canvi caldrà introduir en el futur si és que, efectivament, algun dia algun cinema vol començar a vendre entrades amb preu diferent per pel·lícula.


Comments: Publica un comentari a l'entrada

<< Home

Powered by Blogger