Exercices Architecture & Patterns SRP : Responsabilité unique
🎉

Bravo!

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

SRP : Responsabilité unique

Le premier principe SOLID est le Single Responsibility Principle (SRP) : une classe ne doit avoir qu'une seule raison de changer. Autrement dit, elle ne fait qu'une seule chose.

Imagine un couteau suisse : il coupe, il visse, il ouvre les bouteilles. C'est pratique, mais si la lame casse, tu ne peux plus rien faire. En programmation, on prefere avoir un couteau, un tournevis et un ouvre-bouteille séparés.

Exemple de violation :

class Employe:
def calculer_salaire(self): ... # logique metier
def sauvegarder(self): ... # acces base de données
def generer_rapport(self): ... # formatage

Trois raisons de changer dans la meme classe. Si le format du rapport change, on touche a la classe Employe. Pas bien.

Refactorise en separant les responsabilites :
- Rapport(titre, données) : contient uniquement les données du rapport
- FormatteurRapport : méthode formater(rapport) retourne '{titre}\n{données}'
- CalculateurRapport : méthode calculer_moyenne(rapport) retourne la moyenne des données (liste de nombres)

Exemple :
r = Rapport('Ventes', [10, 20, 30])
FormatteurRapport().formater(r) # 'Ventes\n[10, 20, 30]'
CalculateurRapport().calculer_moyenne(r) # 20.0

Tests (2/4)

Formater
r = Rapport('Ventes', [10, 20, 30])
f = FormatteurRapport()
assert f.formater(r) == 'Ventes\n[10, 20, 30]'
Moyenne
r = Rapport('Stats', [10, 20, 30])
c = CalculateurRapport()
assert c.calculer_moyenne(r) == 20.0

+ 0 tests cachés

Indices (3 disponibles)

solution.py