Modèle de contrôleur frontal
Le modèle de contrôleur frontal est utilisé pour fournir un mécanisme centralisé de gestion des requêtes, où toutes les requêtes sont traitées par un seul gestionnaire. Le gestionnaire peut effectuer l'authentification/l'autorisation/la journalisation, ou suivre les requêtes, puis transmettre la requête au gestionnaire correspondant. Voici les entités de ce modèle de conception.
- Contrôleur frontal- Un gestionnaire unique qui traite tous les types de requêtes pour une application, qu'il s'agisse d'une application web ou d'une application de bureau.
- Répartiteur- Le contrôleur frontal peut utiliser un objet répartiteur pour distribuer les requêtes aux gestionnaires concrets correspondants.
- Vue- Les vues sont des objets créés pour les requêtes.
summary
intention
Utilise un contrôleur central (ou gestionnaire) pour transmettre les requêtes client aux gestionnaires appropriés.
Principaux problèmes résolus
- Résout le problème de la gestion dispersée des requêtes dans les applications web, en fournissant un point d'entrée unifié pour le traitement des requêtes.
Cas d'utilisation
- Lorsque les requêtes doivent être gérées et distribuées de manière centralisée dans une application web.
Approche d'implémentation
- Contrôleur frontal: agit comme le point d'entrée unique pour les requêtes, responsable de la réception et de la transmission des requêtes.
- vue: utilisée pour afficher les résultats du traitement.
- Gestionnaire: le composant qui exécute réellement le traitement des requêtes.
Code clé
- Contrôleur frontal: contient la logique pour décider vers quel gestionnaire transmettre la requête.
- Mappage de gestionnaires: associe les requêtes aux gestionnaires correspondants.
Exemple d'application
- Framework WebUn exemple est le DispatcherServlet dans Spring MVC, qui agit comme le contrôleur frontal.
Avantages
- Gestion centralisée des requêtes: simplifie le flux de traitement des requêtes, ce qui facilite la gestion et la maintenance.
- Réduire la duplication de code: Réduit la duplication de code dans les vues et les gestionnaires en réutilisant les contrôleurs.
- Facile à étendre: Lors de l'ajout d'une nouvelle logique de traitement des requêtes, il suffit d'ajouter un nouveau gestionnaire.
Inconvénients
- Peut devenir un goulot d'étranglement de performance.: Toutes les requêtes passent par le contrôleur frontal, ce qui peut affecter les performances.
Suggestions d'utilisation
- Lors de la construction d'une application web qui nécessite un flux clair de traitement des requêtes, envisagez d'utiliser le motif Contrôleur frontal.
Notes
- Assurez-vous que le contrôleur frontal ne devienne pas un goulot d'étranglement de performance en raison de la gestion centralisée de toutes les requêtes.
Contient plusieurs rôles principaux.
Contrôleur frontal:
- : Agit comme le point d'entrée unique des requêtes, chargé de recevoir les requêtes et de décider comment les traiter.
Gestionnaire:
- Le composant qui exécute réellement le traitement des requêtes.
Vue:
- Utilisé pour rendre la réponse générée par le gestionnaire.
Mappage des gestionnaires (facultatif):
- Associe les requêtes aux gestionnaires correspondants.
Client (facultatif):
- : Le navigateur web ou le client API qui émet des requêtes.
Le patron de contrôleur frontal aide à construire des applications web faciles à maintenir et à étendre en fournissant un mécanisme centralisé de traitement des requêtes.
Implémentation
Nous allons créerFrontController、DispatcherTraités respectivement comme le contrôleur frontal et le répartiteur.HomeViewetStudentViewReprésente diverses vues créées pour les requêtes reçues par le contrôleur frontal.
FrontControllerPatternDemo, notre classe de démonstration utiliseFrontControllerpour démontrer le patron de conception du contrôleur frontal.
Étape 1
Créer la vue.
HomeView.java
StudentView.java
Étape 2
Créer un Dispatcher.
Dispatcher.java
Étape 3
Créer un FrontController.
FrontController.java
Étape 4
UtilisationFrontControllerpour démontrer le modèle de conception du contrôleur frontal.
FrontControllerPatternDemo.java
Étape 5
Exécutez le programme, résultats de sortie:
Page requested: HOME User is authenticated successfully. Displaying Home Page Page requested: STUDENT User is authenticated successfully. Displaying Student Pageautres extensions