Une étude de cas : la vente en ligne de véhicules
Description du système
Dans cet ouvrage, nous prenons l’exemple de la conception d’un système pour illustrer la mise en œuvre des vingt-trois patterns de conception.
Le système à concevoir est un site web de vente en ligne de véhicules comme, par exemple, des automobiles ou des scooters. Ce système autorise différentes opérations comme l’affichage d’un catalogue, la prise de commande, la gestion et le suivi de clientèle. De plus, il est également accessible sous la forme d’un web service.
Cahier des charges
Le site permet d’afficher un catalogue de véhicules proposés à la vente, d’effectuer des recherches au sein de ce catalogue, de passer commande d’un véhicule, de choisir des options pour celui-ci avec un système de chariot virtuel. Les options incompatibles entre elles doivent également être gérées (par exemple "sièges sportifs" et "sièges en cuir" sont des options incompatibles). Il est également possible de revenir à un état précédent du chariot.
Le système doit gérer les commandes. Il doit être capable de calculer les taxes en fonction du pays de livraison du véhicule. Il doit également gérer les commandes payées au comptant et celles assorties d’une demande de crédit. Il prend en compte les demandes de crédit. Le système gère les états de la commande : en cours, validée et livrée.
Lors de la commande d’un véhicule, le système construit la liasse des documents nécessaires comme la demande d’immatriculation, le certificat de cession et le bon de commande. Ces documents sont disponibles au format PDF ou au format HTML.
Le système permet également de solder les véhicules difficiles à vendre, à savoir ceux qui sont dans le stock...
Prise en compte des patterns de conception
Afin de réaliser les différentes contraintes exprimées dans le cahier des charges, nous utilisons dans les chapitres suivants les patterns de conception. Ceux-ci sont pris en compte dans les parties suivantes de la conception du site web :
Description de la partie |
Pattern de conception |
Construire les objets du domaine (automobile à essence, automobile à électricité, etc.). |
Abstract Factory |
Construire les liasses de documents nécessaires en cas d’acquisition d’un véhicule. |
Builder, Prototype |
Créer les commandes. |
Factory Method |
Créer la liasse vierge de documents. |
Singleton |
Gérer des documents PDF. |
Adapter |
Implanter des formulaires en HTML ou à l’aide d’une applet. |
Bridge |
Représenter les sociétés clientes. |
Composite |
Afficher les véhicules du catalogue. |
Decorator, Observer, Strategy |
Fournir l’interface en service web du site. |
Facade |
Gérer les options d’un véhicule commandé. |
Flyweight, Memento |
Gérer l’affichage d’animations pour chaque véhicule du catalogue. |
Proxy |
Gérer la description d’un véhicule. |
Chain of responsibility |
Solder les véhicules restés en stock pendant une longue durée. |
Command |
Rechercher dans la base de véhicules à l’aide d’une requête écrite sous la forme d’une expression logique. |
Interpreter |
Retrouver séquentiellement les véhicules du catalogue.... |