大山还真是大嗓门# Music - 天籁之音
s*9
1 楼
电梯design的问题经常在Amazon的面试中出现。在版上和网上搜了一圈,没有看到比较
完整的解答。一直不清楚回答这种问题应该体现一个什么样的思路。试着做了一下,请
大家给些意见。
分析:
1. 电梯至少要处理两个事件,乘客按电钮是一个事件,电梯到达某层楼是一个事件。
每个事件发生时,电梯应当做相应的操作。
2. 电梯的操作不单取决于事件,还依赖电梯的状态,状态包括任务列表(需要去的楼
层)和运行状态(上行、下行)。
3。按电钮和到达某层的事件可以是同时的,电梯应提供互斥机制保护shared resource。
设计:
class Elevator{
pubic:
buttonPushed(int source, int destination);//source层有人要去destination层
levelArrived(int level);//level层到了
private:
stop(); //停
up(); //上行
down(); //下行
mutex;
taskList;
stat
完整的解答。一直不清楚回答这种问题应该体现一个什么样的思路。试着做了一下,请
大家给些意见。
分析:
1. 电梯至少要处理两个事件,乘客按电钮是一个事件,电梯到达某层楼是一个事件。
每个事件发生时,电梯应当做相应的操作。
2. 电梯的操作不单取决于事件,还依赖电梯的状态,状态包括任务列表(需要去的楼
层)和运行状态(上行、下行)。
3。按电钮和到达某层的事件可以是同时的,电梯应提供互斥机制保护shared resource。
设计:
class Elevator{
pubic:
buttonPushed(int source, int destination);//source层有人要去destination层
levelArrived(int level);//level层到了
private:
stop(); //停
up(); //上行
down(); //下行
mutex;
taskList;
stat