𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀 𝗱𝗲 𝗰𝗼𝗻𝗰𝗲𝗽𝘁𝗶𝗼𝗻 𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗮𝗹𝘀 : 𝗙𝗮𝗰𝗮𝗱𝗲, 𝗙𝗹𝘆𝘄𝗲𝗶𝗴𝗵𝘁 𝗲𝘁 𝗣𝗿𝗼𝘅𝘆
Les patrons de conception structuraux vous aident à organiser les classes et les objets.
Aujourd'hui, nous abordons les trois derniers patrons pour compléter votre boîte à outils.
𝟭. 𝗟𝗲 𝗽𝗮𝘁𝘁𝗲𝗿𝗻 𝗙𝗮𝗰𝗮𝗱𝗲 La Facade simplifie les systèmes complexes. Elle fournit une interface unique et simple à un groupe de classes complexes.
Imaginez un cinéma. Pour regarder un film, vous devez tamiser les lumières, démarrer le projecteur et ouvrir les rideaux. Au lieu d'appeler cinq systèmes différents, vous appelez une seule méthode : theater.watch_movie().
Utilisez-le quand :
- Vous souhaitez simplifier un sous-système complexe.
- Vous avez besoin d'un point d'entrée unique pour une API volumineuse.
- Vous souhaitez découpler les clients de la logique interne.
𝟮. 𝗟𝗲 𝗽𝗮𝘁𝘁𝗲𝗿𝗻 𝗙𝗹𝘆𝘄𝗲𝗶𝗴𝗵𝘁 Le Flyweight permet d'économiser de la mémoire. Il est efficace lorsque vous avez des milliers d'objets similaires.
Au lieu de stocker chaque détail dans chaque objet, vous répartissez les données. Vous conservez les données partagées et immuables (état intrinsèque) à un seul endroit. Vous gardez les données uniques (état extrinsèque) séparément.
Utilisez-le quand :
- L'utilisation de la mémoire est un problème réel.
- Vous gérez des millions d'objets similaires, comme des caractères dans un éditeur de texte ou des particules dans un jeu.
- Vous souhaitez utiliser le "object pooling" pour améliorer les performances.
𝟯. 𝗟𝗲 𝗽𝗮𝘁𝘁𝗲𝗿𝗻 𝗣𝗿𝗼𝘅𝘆 Le Proxy agit comme un substitut pour un autre objet. Il se place entre le client et l'objet réel pour contrôler l'accès.
Un proxy peut :
- Chargement différé (Lazy loading) : charger des images lourdes uniquement lorsqu'un utilisateur clique dessus.
- Contrôler l'accès : vérifier si un utilisateur a la permission de supprimer une base de données.
- Journaliser l'activité : suivre qui utilise un service spécifique.
- Mettre en cache les résultats : renvoyer des données sauvegardées au lieu d'exécuter une logique coûteuse.
Utilisez-le quand :
- Vous devez retarder des opérations coûteuses.
- Vous devez protéger un service sensible.
- Vous souhaitez ajouter de la journalisation ou de la sécurité sans modifier la classe d'origine.
𝗧𝗮𝗯𝗹𝗲𝗮𝘂 𝗿𝗲́𝘀𝘂𝗺𝗲́
• 𝗔𝗱𝗮𝗽𝘁𝗲𝗿 : Permet à des systèmes incompatibles de fonctionner ensemble. • 𝗕𝗿𝗶𝗱𝗴𝗲 : Découple l'abstraction de l'implémentation. • 𝗖𝗼𝗺𝗽𝗼𝘀𝗶𝘁𝗲 : Construit des structures en arbre. • 𝗗𝗲𝗰𝗼𝗿𝗮𝘁𝗼𝗿 : Ajoute un comportement sans modifier les classes. • 𝗙𝗮𝗰𝗮𝗱𝗲 : Simplifie les sous-systèmes complexes. • 𝗙𝗹𝘆𝘄𝗲𝗶𝗴𝗵𝘁 : Partage les données pour économiser de la mémoire. • 𝗣𝗿𝗼𝘅𝘆 : Contrôle l'accès aux objets.
La règle d'or : Utilisez ces patrons pour rendre le code maintenable. Ne les utilisez pas simplement pour faire étalage de vos connaissances.
Ensuite, nous commencerons la série sur les patrons de conception comportementaux.