Question

Je travaille sur l'exemple du parking et je fais quelques hypothèses pendant que je conçois.

J'ai quelques questions dans l'attribution d'attributs aux éléments / objets.

1) Si le parking n'est pas affecté par un système, c'est-à-dire que l'utilisateur juste dans le lot, trouve un endroit approprié (voiture / vélo / camion / handicapé) et parcourt sa voiture.

Je pense que je n'ai pas besoin d'un objet de stationnement, mais à la place, je peux garder un compte de no_of_free_places pour chacun des catégories_of_parking_space.

Étant donné que l'espace de stationnement est grand, nous maintenons simplement trois variables.

  • no_of_free_slots_car
  • no_of_free_slots_bike
  • no_free_slots_truck
  • no_free_slots_handicapp

Lorsqu'un véhicule arrive, nous diminuons simplement l'une des valeurs ci-dessus (ce qui signifie que les places x disponibles, l'utilisateur en choisit un et les parcs), et lorsque les véhicules sortent, nous augmentons la valeur correspondante. (En bref, le parking n'est attribué par personne, le véhicule va simplement dans l'un des endroits et parcs éligibles)

2) En supposant que nous avons un seul parking mondial.
-> Le start_time / end_time devrait-il être un attribut de véhicule?
Ou
-> véhicule_id, start_time, end_time faites partie du parking.

3) En supposant la nécessité d'un objet de stationnement, si 4_Wheeler, 2_Wheeler, handicapé, être un type d'énumération, ou une classe distincte.
Si son énumération, nous pouvons utiliser FindEmptySlot (ParkingSpace_Type);
S'ils sont complètement des classes séparées et que le parking a une méthode FindEmptySlot ();
Comment pouvons-nous obtenir la fente appropriée?

Le parking sera chargé de fixer le démarrage du véhicule, les heures de fin, n'est-ce pas?

Si le a plusieurs montants, 1hr - 20 $, 2h - 30 $, 3h - 40 $, 5h - 50 $
Est-ce que cela a une partie de la classe de parking ou, incluez-les dans une classe distincte "parking"

Était-ce utile?

La solution

D'accord,

  1. Je n'ai pas vraiment compris la question, mais j'utiliserais en effet un tableau ParkingSpace objets pour décrire les espaces du parc.
  2. Étant donné que le temps est par véhicule, le temps doit être fixé sur le véhicule.
  3. J'utiliserais une classe différente pour chacun, et chacun devrait prolonger la classe abstraite Vehicle. Il permet une flexibilité avec des attributs communs et uniques de chaque type de véhicule (numéro de série pour tous les véhicules, mais seuls 4_Wheelers ont des portes par exemple). Quant à la façon de trouver des espaces de stationnement vides, chacun ParkingSpace L'objet aurait un $takenBy La propriété, qui détiendrait une instance de l'objet du véhicule l'occupe. Il devrait par défaut à null, alors, vous itérez simplement à travers le tableau d'espaces de votre ParkingLot classe, et trouvez celui avec $space->takenBy == null.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top