ElevatorSystem
+ request(floor, dir)
«interface»
Dispatcher
+ pick(req): Elevator
Request
- floor
- dir
Elevator
- floor
- dir
- stops
+ addStop(f)
Button
- floor
Model the system
1class ElevatorSystem {2 List<Elevator> elevators;3 DispatchStrategy dispatch;4 void request(int floor, Dir dir) {5 Elevator e = dispatch.pick(new Request(floor, dir));6 e.addStop(floor);7 }8}
State
requirementroute requests to cars