Exercices Architecture & Patterns Pattern Factory
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

Pattern Factory

La Factory (usine) est un pattern qui centralise la création d'objets. Au lieu de créer directement tes objets avec Cercle(5) ou Rectangle(3, 4), tu passes par une usine : FormeFactory.créer('cercle', 5).

L'avantage ? Le code qui utilise la factory n'a pas besoin de connaitre les classes concretes. Si tu ajoutes un Hexagone demain, tu modifies juste la factory, pas tout le code qui crée des formes.

Un dictionnaire de correspondance est plus propre qu'une chaine if/elif :

_catalogue = {
'cercle': Cercle,
'rectangle': Rectangle,
}
classe = _catalogue.get(type_forme)
return classe(*args)

Implemente un Factory pour créer des formes geometriques :
- Cercle(rayon) avec aire() qui calcule pi fois rayon au carre
- Rectangle(largeur, hauteur) avec aire()
- Triangle(base, hauteur) avec aire() qui calcule base fois hauteur divise par 2
- FormeFactory.créer(type_forme, *args) retourne l'instance correspondante

Si le type est inconnu, leve ValueError.

Exemple :
f = FormeFactory.créer('cercle', 3)
f.aire() # environ 28.27

Tests (3/4)

Créer cercle
import math
f = FormeFactory.créer('cercle', 3)
assert abs(f.aire() - math.pi * 9) < 0.01
Créer rectangle
f = FormeFactory.créer('rectangle', 4, 5)
assert f.aire() == 20
Créer triangle
f = FormeFactory.créer('triangle', 6, 4)
assert f.aire() == 12

+ 0 tests cachés

Indices (3 disponibles)

solution.py