Auto-évaluation n°2



Avec le pattern Expert on a l’énoncé suivant :
Soit un magasin contenant des produits qui sont gérés par un stock. Un client possède un panier qui contient au moins 1 produit.
Le gérant du magasin souhaite réaliser une réduction sur l’ensemble de ses produits.
On a identifié les classes suivantes : Stock, Produit, Client, Panier.

Où placer la méthode reduction(int reduc) qui va réduire le prix de chaque produit de la valeur de la variable reduc ?






Avec le pattern Créateur on a l’énoncé suivant :
Soit un parc d’attractions dans lequel des visiteurs viennent pour réaliser des activités.
Ces activités sont crées et gérées par des gardiens. Mais un gardien ne peut pas créer/gérer certaines activités. On distingue donc deux types de gardiens les gardiens A et les gardiens B.


D’un point de vue code on a les classes GardienA et GardienB qui héritent toutes deux de la classe abstraite Gardien.

On souhaite savoir où placer la méthode creerActivite() qui crée une activité et l’associe à un gardien compétant :





Avec le pattern Faible couplage on a l’éconcé suivant :
Dans un restaurant on souhaite pouvoir créer des commandes constituées de plusieurs plats. Mais pour chaque plat on veut pouvoir lui associer une description qui est un objet composé d’un prix et d’un libellé.

On a donc trois classes reliées entre elles : Commande, Plat, DescriptionPlat

On souhaite savoir comment ces classes sont reliées entres elles pour respecter au mieux le principe de faible couplage tout en imaginant qu’on peut à tout moment modifier la classe Plat.





A quoi sert un contrôleur ?






Avec le pattern forte cohésion on a l’énoncé suivant :
Lors d’un problème sur un ordinateur on peut ouvrir un ticket c’est-à-dire générer une requête pour le service informatique correspondant pour lui signaler l’erreur. De manière générale c’est un utilisateur qui déclare un ticket à l’intention du service informatique.
Lors de la déclaration d’un ticket l’utilisateur doit indiquer le type d’erreur. On donne les 3 tables suivantes :

  • La table Utilisateur
  • La table Utilisateur
  • La table TypeErreur

On cherche à connaitre l’implémentation de la méthode declarerTicket qui permet à un utilisateur de déclarer un ticket :






Avec le pattern polymorphisme on a l’énoncé suivant :
On distingue trois types d’espèces vivantes qui correpondront à 3 classes :

  • L’Eukaryota
  • L’Archaea
  • La Bacteria

Toutes ces espèces peuvent manger, de façon différente, mais seul les Eukaryota peuvent dormir.

Quelle est l’implémentation la plus adaptée ?






Avec le pattern fabrication pure on a l’énoncé suivant :
Dans un magasin on souhaite qu’à chaque achat d’un article le client soit ajouté dans la base de données pour qu’il puisse être reconnu lors de ses futurs achats.
Un client est définit par un nom, un prénom et peut seulement acheter des produits.

Pour cela on vous propose les choix suivants. Quelles est la meilleure implémentation ?