logo

Classification des modèles de conception

Les modèles de conception sont classés principalement en trois catégories : Modèle de conception créationnelle, modèle de conception structurelle et modèle de conception comportementale. Ceux-ci diffèrent les uns des autres en fonction de leur niveau de détail, de leur complexité et de leur échelle d'applicabilité à l'ensemble du système en cours de conception.

Il existe également deux types de modèles : les idiomes et les modèles architecturaux. Mais nous ne les explorerons pas dans ce tutoriel.

Modèle de conception créationnelle

Comme son nom l'indique, il fournit le mécanisme de création d'objets ou de classes qui améliore la flexibilité et la réutilisabilité du code existant. Ils réduisent la dépendance et contrôlent la manière dont l'utilisation interagit avec notre classe afin que nous ne soyons pas confrontés à une construction complexe. Vous trouverez ci-dessous les différents modèles de conception des modèles de conception créationnels.

Usine abstraite- Cela nous permet de créer des objets sans préciser leur type concret.

Constructeur - Il est utilisé pour créer des objets complexes.

exemple de sous-chaîne en java

Méthode d'usine - Cela nous permet de créer un objet sans spécifier la classe exacte à créer.

Prototype - Il est utilisé pour créer un nouvel objet à partir de l'objet existant.

Singleton- Le modèle de conception Singleton garantit qu’une seule instance d’un objet est créée.

Modèles de conception structurelle

Les modèles de conception structurelle sont principalement responsables de l'assemblage des objets et des classes dans une structure plus grande, en veillant à ce que cette structure soit flexible et efficace. Ils sont essentiels pour améliorer la lisibilité et la maintenabilité du code. Cela garantit également que les fonctionnalités sont correctement séparées et encapsulées. Cela réduit l’interface minimale entre les éléments interdépendants.

exception de pointeur nul

Adaptateur - Il nous permet de faire fonctionner ensemble deux classes incompatibles en enveloppant une interface autour de l'une des classes existantes.

Composite - Il regroupe un groupe d'objets en un seul objet.

Pont - Il découple une abstraction afin que deux classes puissent varier indépendamment.

Décorateur - Il étend le comportement de l'objet de manière dynamique au moment de l'exécution.

Façade - Il offre une interface simple à des objets sous-jacents plus complexes.

Poids mouche - Cela diminue le coût du modèle objet complexe.

ipconfig pour Ubuntu

Procuration - Il réduit les coûts, réduit la complexité et fournit l'interface d'espace réservé à un objet sous-jacent pour contrôler l'accès.

Modèle de conception comportementale

Les modèles de conception comportementale sont responsables de la manière dont une classe communique avec les autres.

Chaîne de responsabilité - Il représente la commande d'une chaîne d'objets de traitement.

Commande - Il génère les objets qui encapsulent les actions des paramètres.

ronde mathématiques java

Interprète - Il implémente un langage spécialisé.

Itérateur - Il accède à tous les éléments d'un objet de manière séquentielle sans violer sa représentation sous-jacente.

arbre b et arbre b

Médiateur - Il assure un couplage lâche entre les classes en étant la seule classe à posséder une connaissance détaillée de leurs méthodes existantes.

Souvenir - Il restaure un objet dans l'état précédent.

Observateur - Il permet à un certain nombre d'objets observateurs de voir un événement.

État - Il permet à un objet de modifier son comportement lorsque ses états internes changent.

Stratégie - Il fournit l'une des familles d'algorithmes à sélectionner au moment de l'exécution.

Méthode de modèle - Cela permet aux sous-classes de fournir un comportement concret. Il définit également le squelette d'un algorithme comme une classe abstraite.

Visiteur - Il sépare un algorithme d'une structure d'objet en déplaçant la hiérarchie des méthodes en un seul objet.

Nous apprendrons quelques modèles de conception importants dans le prochain didacticiel.