
Originariamente inviata da
andbin
Innanzitutto, premessa: non è sempre facile (te lo posso garantire!) rappresentare in classi/oggetti delle logiche e dei comportamenti di persone che usano cose e tempistiche come quanto indicato nella traccia. Insomma, non è facile rappresentare scenari reali di vita.
In questi casi bisogna analizzare bene le entità in gioco, valutare come rappresentarle e come metterle in relazione. Hai fatto questo? Tutto questo infatti viene PRIMA di qualunque questione o dubbio sui semafori!
Le persone e l'istruttore potrebbero essere dei "thread". Io farei sicuramente anche una classe Corsia (che contiene il Semaphore, che può anche essere tenuto nascosto) e altrettanto sicuramente farei anche una classe Piscina (che contiene le N corsie).
Siccome l'istruttore ha di certo un maggiore controllo sulla piscina rispetto alle persone-utenti, se proprio si volesse (scenario limite, da pignoli) si potrebbe astrarre la cosa in due interfacce distinte, implementate entrambe da Piscina. In modo che gli utenti non possano fare operazioni che invece l'istruttore può fare.
Ti ritrovi con quanto detto? O no?