Lorsque l'on créé un programme, on est confronté à des problèmes d'organisation et de conception.
On a trouvé différentes réponses aux questions couramment posées ...
Problèmes courants :
Comment rendre le code évolutif ?
Comment séparer les responsabilités et les "métiers" ?
Comment éviter de se répéter ?
Le concept de "patron de conception" (Design Pattern)
Au fil des années, les développeurs ont créé des organisations du code qui les ont aidé à mieux développer et à rendre leur code plus propre, plus évolutif
Certains patterns sont très connus :
Le Singleton
La Factory
Le Décorateur
L'Observateur
Et évidemment le MVC
Le pattern MVC
But : séparer les diverses responsabilités
On cherche à séparer le code qui concerne les traitements et la logique, le code qui concerne l'accès et la gestion des données et le code qui concerne les affichages
On organisera le code de cette manière :
Les contrôleurs : ils concernent les traitements et contrôles
Les modèles : ils gèrent l'accès aux données
Les vues : elles gèrent les affichages
Le pattern MVC
Le controller (contrôleur)
Intercepte les actions de l'utilisateur
Contrôle les données soumises
Demande les données nécessaires ou agit sur les données grâce aux Models (modèles)
Affiche les données à l'utilisateur grâce aux Views (vues)
Dans le cadre du Web, le contrôleur ne devrait contenir aucune ligne de HTML, ni de SQL, uniquement des traitements
Le model (modèle)
Gère la connexion à la source de données
Permet la récupération de données
Permet la modification des données
Dans le cadre du Web, le model ne doit gérer que l'accès aux données et ne pas contenir ni HTML ni traitements des entrées utilisateurs
La vue (view)
Ne concerne que l'affichage des données
Utilise les données mises à disposition du controller
Peut utiliser les données mises à disposition pour le model
Dans le cadre du Web, la view ne doit gérer que l'affichage et ne contenir aucun traitement ni aucun SQL