Patterns

De RAD Studio
Aller à : navigation, rechercher

Remonter à Introduction aux concepts de modélisation

Les patterns fournissent aux développeurs de logiciels des fonctionnalités puissantes de réutilisation. Plutôt que d'essayer de résoudre chaque problème de conception depuis le tout début, vous pouvez utiliser les patterns prédéfinis. La hiérarchie des patterns est définie dans le Registre des patterns. Vous pouvez gérer et agencer logiquement vos patterns à l'aide du Gestionnaire de patterns.

Les patterns sont conçus pour :

  • Créer des éléments fréquemment utilisés.
  • Modifier des éléments existants.
  • Implémenter des constructions de code source utiles.


Registre des patterns

Le Registre des patterns stocke l'ensemble des patterns. Pour visualiser les patterns stockés dans le Registre des patterns, utilisez la visionneuse Registre des patterns. Dans la visionneuse Registre des patterns, vous pouvez filtrer les patterns par catégorie, métaclasse, type de diagramme, langage ou statut d'enregistrement, et visualiser les propriétés des patterns. La visionneuse Registre des patterns peut être activée à partir des menus contextuels du Gestionnaire de patterns, avec la commande Nouveau raccourci quand vous créez un nouveau raccourci, ou avec la commande Assigner un pattern quand vous assignez un pattern à un raccourci.

Gestionnaire de patterns

Le Gestionnaire de patterns vous permet d'organiser logiquement les patterns (à l'aide d'arborescences, de dossiers et de raccourcis virtuels), ainsi que de visualiser et modifier les propriétés des patterns. Dans le Gestionnaire de patterns, vous travaillez avec les raccourcis aux patterns, et non avec les patterns réels. Des raccourcis au même pattern peuvent être inclus dans plusieurs dossiers.

Templates

La modélisation supporte les templates afin de fournir une compatibilité descendante avec les anciens projets des versions précédentes. Vous pouvez copier les dossiers contenant vos anciens templates de code source dans le sous-dossier Patterns de votre répertoire d'installation, puis utiliser ces templates pour créer des éléments dans les projets d'implémentation.

Les templates, fichiers texte dotés d'extensions de noms de fichiers spécifiques au langage, utilisent des macros remplacées par les valeurs réelles quand les templates sont appliqués. Par conséquent, les templates peuvent être considérés comme des fiches prêtes au "remplissage" par les valeurs réelles. Un template se compose d'un fichier template contenant le code source, et d'un fichier de propriétés qui contient les descriptions des macros et les valeurs par défaut.

Les templates sont stockés dans le sous-répertoire Patterns\templates de votre installation en utilisant la structure suivante :

\<language>\<category>\<template name>

<category> est CLASS, LINK ou MEMBER. Chaque dossier <template_name> contient les fichiers suivants :

  • %Name%.<ext>
  • <template_name>.properties (facultatif)

Patterns de conception

Un pattern de conception est un fichier XML qui contient une séquence d'instructions ou d'actions, servant à créer des éléments de modélisation et des liens, et à définir leurs propriétés. Chaque instruction crée un élément de modèle ou un lien entre les éléments de modèle.

Outre la création de nouveaux éléments de modélisation, vous pouvez utiliser les patterns de conception pour ajouter des membres à un élément conteneur. La propriété Use Existent du pattern que vous appliquez à l'élément conteneur spécifié doit être définie sur True. Vous pouvez appliquer le pattern à l'élément conteneur que vous voulez modifier. Par exemple, si vous voulez ajouter plusieurs méthodes stockées en tant que pattern à une classe existante, vous devez alors appliquer ce pattern au diagramme où cette classe existe.

Les patterns de conception sont stockés sous la forme de fichiers XML dans le sous-dossier Patterns de votre installation.

Patterns FCC (First Class Citizens)

Un pattern FCC (First Class Citizen) est un type spécifique de pattern de conception qui contient des informations sur le nom du pattern et le rôle de chaque participant. Appliqués à un diagramme, les patterns FCC créent leurs propres entités et sont présentés sur le diagramme avec les liens aux entités créées. De tels patterns permettent des modifications ultérieures par l'ajout de nouveaux participants.

Les patterns FCC sont représentés par les patterns GoF.

Sur un diagramme, un pattern prend la forme d'un ovale avec le nom du pattern et la liste extensible des participants. Chaque participant est connecté à l'ovale du pattern par un lien, libellé avec le rôle du participant.

Les patterns FCC génèrent le code source. Les entités créées par patterns sont stockées dans les fichiers diagramme.

Patterns Stub implementation

Quand vous créez un lien d'héritage entre une classe et une autre classe ou interface abstraite, les méthodes et les membres se sont pas automatiquement ajoutés à la classe enfant. Ce problème est résolu à l'aide du pattern Stub implementation. Vous pouvez aussi créer un lien d'implémentation et une implémentation de stub en une seule étape à l'aide du pattern Implementation link and stub.

Si la destination d'un lien est une interface, le pattern Stub implementation crée le source-classe implémentant cette interface, et crée dans cette classe les stubs pour toutes les méthodes déclarées dans l'interface et toutes ses interfaces parent.

Si le lien de destination est une classe abstraite, le pattern Stub implementation génère le code source-classe qui étend les éléments destination-classe. Il génère les stubs pour tous les constructeurs déclarés dans la destination-classe. Ces stubs de constructeur appellent les constructeurs correspondants dans la destination-classe.

Vous pouvez trouver le pattern Implementation link and stub dans l'expert Pattern. Pour ouvrir l'expert Pattern, utilisez le bouton Lien par pattern ou Noeud par pattern de la Palette d'outils, ou la commande Créer par pattern du menu contextuel d'une classe.

Le pattern Implementation link and stub crée les membres suivants des interfaces et des classes abstraites :

  • Méthodes
  • Fonctions
  • Sous-routines
  • Propriétés
  • Indexeurs
  • Evénements

Voir aussi