5️⃣Ascensore [12+8]
Si consideri lo sviluppo di un sistema software in cui alcune componenti vecchie devono essere ancora usate senza poterle aggiornare (“legacy”). In questo sistema si abbia quindi la classe LegacyElevator che implementa del codice per muovere un ascensore; il metodo move_by indica di quanti piani spostarsi in alto o in basso (per es. si passa al metodo -2 per scendere di 2 piani, +3 per salire di 3 piani). Questo codice non può essere modificato. La creazione di un nuovo software di controllo degli ascensori richiede però di implementare l’interfaccia Elevator descritta sotto, il cui metodo move_to deve ricevere come argomento il numero del piano a cui andare. Si implementi un Adapter a scelta (10 punti).
Per ottenere i 6 punti aggiuntivi si implementi la seconda versione di Adapter, diversa dalla precedente. Per ogni Adapter implementato se ne disegni il diagramma UML di classe (2 punti ogni diagramma).
Last updated