MVC, MVP, MVVM
Trois patrons qui séparent l'interface du métier : le rôle du modèle, de la vue, du contrôleur, du présentateur et de la vue-modèle, le sens des dépendances et ce qui distingue les trois.
- 28 cartes
- 4 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Sur le schéma
Quelques cartes du deck
Séparation des préoccupations : de quoi s'agit-il ?
Voir la réponse
Principe qui consiste à découper un programme en parties dont chacune traite un seul sujet : les données et règles, l'affichage, la réaction aux gestes.
Quand on change l'apparence d'un écran, on ne devrait toucher ni aux règles de calcul ni à l'accès aux données : MVC, MVP et MVVM sont trois façons d'appliquer ce principe à une interface.
Qu'affiche ce programme organisé en MVC ?
```python
class Panier:
def __init__(self):
self.articles = []
def ajouter(self, prix):
self.articles.append(prix)
def total(self):
return sum(self.articles)
class Vue:
def afficher(self, total):
print("Total :", total)
class Controleur:
def __init__(self, panier, vue):
self.panier = panier
self.vue = vue
def clic_ajouter(self, prix):
self.panier.ajouter(prix)
self.vue.afficher(self.panier.total())
c = Controleur(Panier(), Vue())
c.clic_ajouter(10)
c.clic_ajouter(5)`Total : 10puisTotal : 15Total : 10puisTotal : 5Total : 15deux fois de suiteTotal : 10puisTotal : 10
Voir la réponse
Total : 10puisTotal : 15Le panier garde son état d'un clic à l'autre : le second appel additionne 5 aux 10 déjà présents. La vue ne fait qu'afficher le total que le modèle calcule.
Dans MVC, le modèle ne connaît ni la vue ni le contrôleur : la … observe le modèle, et le … transmet les actions de l'utilisateur.
Voir la réponse
Dans MVC, le modèle ne connaît ni la vue ni le contrôleur : la vue observe le modèle, et le contrôleur transmet les actions de l'utilisateur.
Le sens des dépendances est ce qui compte : le modèle est au centre et n'a besoin de personne, les autres parties dépendent de lui.
Modèle : de quoi s'agit-il ?
Voir la réponse
Partie qui détient les données de l'application et leurs règles de gestion, sans rien connaître de l'écran.
Comme il ignore l'affichage, le même objet peut servir une page web, une application mobile ou un test automatique sans aucun changement.