Amazon Interview-Frage: Entwerfen Sie ein OO-Parkplatz
Design OO-Parkplatz. Welche Klassen und Funktionen wird es haben. Es sollte sagen, voll, leer und auch in der Lage sein zu finden-spot für den Parkservice. Die Menge hat 3 verschiedene Arten des Parkens: regelmäßige, Behinderte und kompakt.
Dank!
InformationsquelleAutor der Frage burnt1ce | 2009-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein quick start, um die Zahnräder drehen...
Parkplatz ist Klasse.
Parkplatz ist Klasse.
Parkplatz hat einen Eingang.
Eingang hat einen Standort oder genauer, die Entfernung vom Eingang.
ParkingLotSign ist eine Klasse.
Parkplatz hat eine ParkingLotSign.
Parkplatz hat eine endliche Anzahl von ParkingSpaces.
HandicappedParkingSpace ist eine Unterklasse von Parkplatz.
RegularParkingSpace ist eine Unterklasse von Parkplatz.
CompactParkingSpace ist eine Unterklasse von Parkplatz.
Parkplatz hält array von ParkingSpaces, und einem separaten array von leerstehenden ParkingSpaces in der Reihenfolge der Entfernung vom Eingang.
ParkingLotSign gesagt werden kann, zur Anzeige von "voll" oder "leer" oder "leer/normal/teilweise besetzt", indem Sie .Vollständige(), .Empty() oder .Normal()
Parker ist eine Klasse.
Parker Parken().
Parker kann entparken von anrufen().
Valet ist eine Unterklasse von Parker können call Parkplatz.FindVacantSpaceNearestEntrance(), das gibt einen Parkplatz.
Parker hat einen Parkplatz.
Parker nennen kann Parkplatz.Nehmen Sie() und Parkplatz.Räumen().
Parker ruft Eingang.Eingabe() und Eingang.Beenden() und Parkplatz benachrichtigt Parkplatz, wenn es genommen wird oder geräumt, so dass der Parkplatz kann feststellen, ob es voll ist oder nicht. Wenn es neu voll oder neu, leer oder neu nicht voll oder leer ist, es sollte sich ändern, die ParkingLotSign.Full() oder ParkingLotSign.Empty() oder ParkingLotSign.Normal().
HandicappedParker könnte eine Unterklasse von Parker und CompactParker eine Unterklasse von Parker und RegularParker eine Unterklasse von Parker. (vielleicht übertrieben, tatsächlich.)
In dieser Lösung ist es möglich, dass Parker sollte umbenannt werden Auto.
InformationsquelleAutor der Antwort Chris Morley
InformationsquelleAutor der Antwort Srikant Aggarwal
Modelle existieren nicht in isolation. Die Strukturen, die Sie würde definieren, die für eine simulation des Autos betreten, ein Parkplatz, ein embedded-system, das führt Sie zu einem freien Platz, einen Auto-Parkplatz-billing-system oder für die automatisierte Tore/ticket-Maschinen üblich in Parkhäusern, die sind alle unterschiedlich.
InformationsquelleAutor der Antwort Pete Kirkham
In einer Objekt-Orientierten Parkplatz, wird es keine Notwendigkeit für Begleiter, weil die Autos "wissen, wie zu Parken".
Suche nach einem brauchbaren Auto auf dem Parkplatz wird schwierig sein; die gängigsten Modelle werden entweder haben alle Ihre beweglichen Teile ausgesetzt als öffentliche member-Variablen, oder Sie werden "vollständig gekapselt" Autos ohne Fenster oder Türen.
Parkplätze in unserem OO-Parkplatz wird nicht mit der Größe und der Form des Autos (ein "impediance mismatch" zwischen den Räumen und die Autos)
Lizenz-tags auf unseren Menge wird ein Punkt zwischen den einzelnen Buchstaben und Ziffern. Behindertengerechte Parkplätze sind nur verfügbar für Lizenzen beginnend mit "_", und Lizenzen, die beginnen mit "m_" werden abgeschleppt.
InformationsquelleAutor der Antwort Paul Keister
benötigen Sie einen Parkplatz, der besitzt eine multi-dimensionale array (angegeben im Konstruktor) eine Art "Raum". Auf dem Parkplatz können Sie verfolgen, wie viele Räume getroffen werden über Aufrufe von Funktionen füllen und leeren Räume.Platz halten können einen Aufzählungstyp, der sagt, welche Art von Raum es ist. Auch der Raum hat eine Methode genommen(). für das valet-Parken, nur der erste Platz, das ist offen, und stellen Sie das Auto dort. Sie müssen auch ein Auto-Objekt in den Raum gestellt, das hält, ob es ein Behinderten -, kompakt-oder herkömmliches Fahrzeug.
InformationsquelleAutor der Antwort Scott M.