Documente Academic
Documente Profesional
Documente Cultură
SIMA
TD04. Design patterns (correction)
Laëtitia Matignon
On s’intéresse à la modélisation d’une unité d’un jeu de stratégie 1 . Une unité peut
être un soldat, un char, un avion, ... Les unités ont des capacités de déplacement et de
combat variables. Par exemple, un soldat peut être équipé d’un fusil mitrailleur, d’un
lance-flamme, d’un lance-missile ...
Question 1 Proposer une architecture pour modéliser ces unités aux comportements
interchangeables.
1
2 Système de vente de véhicules
Au sein d’un système de vente de véhicules, nous voulons représenter les sociétés clientes,
notamment pour leur proposer des offres de maintenance de leur parc de véhicules.
Pour cela, il faut calculer le coût d’entretien de leur parc qui est fonction du nombre
de véhicules du parc et du cout d’entretien unitaire. Ces sociétés cliente peuvent être
sans filiales ou être des sociétés mères auxquelles on peut ajouter des filiales. Il doit être
possible d’ajouter des véhicules aux sociétés mères et sans filiale.
Question 2 Modéliser ces sociétés clientes à l’aide d’un pattern. Préciser comment
sont implémentées les classes.
2
3 Répertoires et fichiers
Question 4 Modifier cette architecture pour prendre en compte une classe abstraite
FichierAbstrait à la place de l’interface IFichier.
On peut utiliser exactement le même principe que précédemment, mais afin d’éviter
l’héritage multiple on utilisera un pattern d’adaptateur d’instance (d’objet) : on in-
troduira une classe Fichier héritant de la classe FichierAbstrait et utilisant une
instance de la classe File par délégation.
3
4 Document HTML
On suppose que l’on dispose des classes de la figure pour manipuler des documents
HTML. Par exemple, si l’on crée un élément de type Balise avec le nom « h1 »,
la méthode codeHTMLOuvrant retournera « <h1> » et la méthode codeHTMLFermant
retournera « </h1> ». Les éléments de type Ancre sont les balises <a href=“...”>, ceux
de type entête correspondent à une balise <head>, ceux de type image correspondent
à une balise <img src=“...” title=“...”>. Les éléments de type BaliseVide sont ceux tels
que <br />.
<p>
<br />
C’est <em>urgent</em>.
</p>
4
5