Voici un démarrage rapide pour obtenir les engrenages tournent ...
Parkinglot est une classe.
ParkingSpace est une classe.
ParkingSpace a une entrée.
L'entrée a un emplacement ou plus précisément, la distance de l'entrée.
ParkingLotSign est une classe.
ParkingLot a un ParkingLotSign.
ParkingLot a un nombre fini d'espaces de stationnement. HandicappedParkingSpace est une sous-classe de ParkingSpace. RegularParkingSpace est une sous-classe de ParkingSpace.
CompactParkingSpace est une sous-classe de ParkingSpace. ParkingLot conserve un tableau d'espaces de stationnement, et un tableau distinct d'espaces de stationnement libres dans l'ordre de la distance de son entrée.
ParkingLotSign peut être dit pour afficher "complet" ou "vide" ou "blanc/normal/partiellement occupé" en appelant .Full(), .Empty() ou .Normal()
Parker est une classe.
Parker peut se garer().
Parker peut se démarquer(). Valet est une sous-classe de Parker qui peut appeler ParkingLot.FindVacantSpaceNearestEntrance(), qui renvoie un espace ParkingSpace.
Parker dispose d'un espace de stationnement.
Parker peut appeler ParkingSpace.Take() et ParkingSpace.Vacate().
Parker appelle Entrance.Entering() et Entrance.Exiting() et ParkingSpace notifie ParkingLot lorsqu'il est pris ou annulé afin que ParkingLot puisse déterminer s'il est plein ou non. Si elle est nouvellement remplie ou nouvellement vide ou si elle n'est pas pleine ou vide, elle doit changer ParkingLotSign.Full() ou ParkingLotSign.Empty() ou ParkingLotSign.Normal(). HandicappedParker pourrait être une sous-classe de Parker et de CompactParker une sous-classe de Parker et RegularParker une sous-classe de Parker. (peut être trop, en fait.)
Dans cette solution, il est possible que Parker soit renommé Car.
Avez-vous bondi et exclamé "qu'est-ce que cela a à voir avec les livres?" et sortir? –
On m'a demandé cela par un gars qui est passé à une autre situation. Lorsque j'ai utilisé de manière appropriée un modèle de Gang of Four presque manuel, il m'a dit "Au moins, vous connaissez le polymorphisme". On m'a alors remercié d'être venu et on m'a dit de me le faire savoir. Je n'ai pas été impressionné. –
Ce problème de gestion de la mémoire n'est-il pas présent? –