我正在申请学校,其中包括使用策略模式模拟建筑物中电梯的工作。
所以我有一个类楼,它有ArrayList
个楼层和另一个电梯。每层楼都有一个叫电梯的按钮,有4部电梯和16层。
我需要做的是应用策略模式以决定哪个电梯应移动到哪个楼层。
有关这如何运作的任何想法?
我试图为每个楼层创建一个观察者,所以当按下按钮时,观察者会收到通知,但我仍然不知道如何制定策略来选择电梯应该到每个楼层:S
如果你需要代码,我会试着翻译它,我犯了错误,用我的母语编写变量,这不是英文,你可以看到。
答案 0 :(得分:0)
您可能希望查看现有代码。
这里的关键是使用计时器来模拟实际通过的时间。您需要以某种方式获取按下按钮的所有楼层(列表或数组等)。每个按下的按钮都需要知道它的地板和方向(向上,向下或任何方向)。如果从电梯内部按下,则“任意”,如果在外面按下,则“向上”或“向下”。根据这个目标楼层列表,您可以根据电梯的当前楼层及其当前方向决定每个时刻或每个站点后下一个楼层,并输出“向上”或“向下”以定位到地板上。
请注意,为了避免饥饿,电梯不能总是只是瞄准“下一个”楼层。想一想。