Elevator System Design | Grokking the Object Oriented System Design Interview Question

preview_player
Показать описание
Elevator System Design is a commonly asked Object Oriented Design Interview Question in big tech companies like Google, Facebook, Microsoft, Amazon, etc. In this video, I am discussing how to tackle System Design interview questions about designing an elevator system. This video includes the following, however, I would recommend you to watch the video full to avoid missing any important points.

00:00 - Introduction
00:30 - How to tackle Object Oriented System Design Interview Questions
02:45 - Requirements of an Elevator System
11:35 - Actors and Objects in an Elevator System
15:35 - Use cases in Elevator System Design
18:00 - Classes and Interfaces in the Elevator System Design
20:05 - Dispatch Algorithms used in an Elevator System
41:15 - Final Remarks

Check out our following articles:

#SystemDesign #DistributedSystems #FAANG #Facebook #Google #Amazon #Apple #Microsoft #Uber #Netflix #Oracle #Lyft #Interview #ComputerProgramming
Рекомендации по теме
Комментарии
Автор

Let me know whether you find the video useful. Also please don't forget to like the video and subscribe to this channel. Thanks :)

Distributed System Design Interviews Bible | Best online resource for System Design Interview Preparation is now online. Please visit:

ThinkSoftware
Автор

No fake accent, no PJ..just knowledge in the best descriptive way..
Excellent video..

thesudhir
Автор

> big tech companies
This question was asked in client interview which was the last round in wipro recruitment process. I wasn't prepared for that, in fact coming from a tier 4 pvt college i never came across such question. But I did my best, and that was great interview experience. Me and the interviewer both drilled down into elevators for over an hour.

greatred
Автор

The reason why we're not using Passenger class in Elevator system is the same reason why we're not using Vehicle class in Parking Lot system.
The reason why we're not using Vehicle class in Parking Lot system is the same reason why we're not using Passenger class in Elevator system.

Thank you for the explanation.

kartikchauhan
Автор

Nice video but you could have focused more on OOD as well. Like Button -> (Elevator Button, Hall Button) -> Elevator Button (Event Button, Floor Button) -> Event Button (Alarm Button, Fan Button, Light Button, Door Button). Here floor Button will only deal with floor functionality. Same for Fan, Door, Light etc button also. In this way SRP is not violated. Button interface can Have method like action(SystemInterface): void . Here SystemInterface can be extended by two classes ElevatorSystem and AdminSystem. for action methods under EventButton class we can prefer passing action(ElevatorSystem e): void and for HallButton we do action(AdminSystem a): void, bcz it deals on system to decide which elevator to sent on passenger floor.

rahulsolankib
Автор

I am new to system design and I cannot explain how much this helped. Thank you very much, Sir!

vinoltauro
Автор

I watched many videos on elevator design, but your content and way of explaining is super awesome.
No one will get rejected in an interview if he can explain like this.
Very satisfied. Thankyou very much

AbhayKumar-ozoh
Автор

I think the reason that we used enum to represent the { idle, going up, going down} states is because the state space should be only limited to these 3, whereas in the parking lot example there could be many types of parking spots that can be added even after first version of design is done. In the parking lot example, we designed it to be flexible so that when other types of spots are needed, they don't violate the Open/Close principle, but in this one we want the elevator states to be closed and not modified later.

mr
Автор

Suggestion : the viewer usually comes here to find "what should be answered in the interview" instead of what he thinks would be better.. because what he himself thinks can be wrong. So i think the videos should provide a clear answer on what is the best answer for the particular scenarios

rahulbhardwaj
Автор

I signed into my Youtube account just so I could tell you how useful this video is. Explained so clearly, thank you!

daniel-
Автор

Probably the best resource out there to learn LLD.

atamishali
Автор

High quality content. Better than other videos on YouTube

mirceskiandrej
Автор

i wish there were no elevator in this planet

bishnuagrawal
Автор

Love ur videos. Tis is my reasoning for a person class / Car class.

A class is collection of DATA + FUNCTIONALITIES. Here a person has no direct functionality / data. hence no entity needed.

seekersofwisdom
Автор

I did not read all of the comments below, so maybe someone already mentioned this, but I believe a fourth elevator car state would be "out of service." Your videos are bringing together a lot of loose ends for me. Thank you.

brucehergert
Автор

Thanks a lot for the video. Couple of questions
1. Do we need button class at all? Essentially we are creating InternalRequest and ExternalRequest when press ElevatorButton or HallButton respecitvely
2. For Button class, you drive ElevatorButton class and HallButton class from it. I think we should not have PressDown() in Button class as there is no equivalent in ElevatorButton . In real elevator buttons, there are only floor numbers buttons, help button, door open/close button etc but no up and down

kc
Автор

Your info is really good. This information is very useful for those who have searched for this and you have great knowledge about this. I’m really impressed with this.
Thank you so much.

GlobalElevatorAcademy
Автор

Really Good Video,
Actually Elevator System Problem is really Complicated problem if we try to dive deep and think.

CleanCoder
Автор

You look like Ashish Nehra. Btw..Very Good Content

kumarpallav
Автор

This Rocks! Not the evelator, but the presentation! I've been wondering about this since college. Now I'm in a five floor building, it all makes sense. What if a vip is coming home to your house in a suprise visit.

rhealy