|
|
|
|
|
- Implémentation
- Variables
- Passage de paramètres
- Composant externe
Interface En anglais : Interface
Une interface permet de découpler les utilisations des fonctionnalités communes à plusieurs éléments de leurs implémentations, ce qui simplifie leur réutilisabilité. Une interface est une liste des fonctionnalités disponibles, une sorte de contrat ("Je m'engage à fournir les méthodes et les propriétés suivantes"). Caractéristiques d'une interface : - Une interface contient une liste de prototypes de méthodes et de propriétés.
- Toutes les méthodes et les propriétés sont accessibles (pas de public/protégé/privé).
- Il n'y a aucun élément d'implémentation (pas de membres, pas de code, ...).
Une interface est un type qui peut être déclaré dans le code d'initialisation du projet ou le code de déclaration d'un élément, en particulier les collections de procédures. Remarque : Les interfaces ne sont pas utilisables hors projet. // Déclarer une interface Panier est une Interface procédure AjouteProduit(CodeProduit) Propriété NombreProduit <lecture> FIN
Syntaxe
Déclarer une interface Masquer les détails
<Nom de l'interface> est une Interface Procédure <Procédure 1> ([<Paramètres]) [ : <Type du retour>] Procédure <Procédure N> ([<Paramètres]) [ : <Type du retour>] Propriété <Propriété 1> [ : <Type retour>] [ <Lecture / Ecriture> ] Propriété <Propriété N> [ : <Type retour>] [ <Lecture / Ecriture> ] FIN
<Nom de l'interface> : Nom de l'interface à déclarer. <Procédure X> : Nom des procédures listées par l'interface. Ces procédures peuvent avoir un ou plusieurs paramètres et renvoyer une valeur. Il est possible de spécifier le type de la valeur renvoyée par la procédure. Ce type peut correspondre à un type simple (entier, réel, chaîne, ...) ou structuré (structure, objet, ...). <Propriété Y> : Nom des propriétés listées par l'interface. Ces propriétés peuvent : - renvoyer une valeur. Il est possible de spécifier le type de la valeur renvoyée par la propriété. Ce type peut correspondre à un type simple (entier, réel, chaîne, ...) ou structuré (structure, objet, ...).
- avoir des attributs permettant de spécifier si la propriété est en lecture seule ou en lecture/écriture, ...
<FIN> : Fin de déclaration de l'interface. Remarques Une interface peut être implémentée par une classe : la classe implémente toutes les méthodes et toutes les propriétés de l'interface. Le mot-clé "implémente" permet de lier l'interface et la classe. Exemple :
PanierInternet est une Classe implémente Panier m_TabProduit est un tableau d'entiers FIN
// Procédure PROCÉDURE AjouteProduit(CodeProduit) m_TabProduit.Ajoute(CodeProduit)
// Propriété PROCÉDURE PUBLIQUE NombreProduit() RENVOYER m_TabProduit..Occurrence
Si une classe n'implémente pas toutes les méthodes ou propriétés de l'interface, une erreur de compilation sera levée. Il est possible de déclarer des variables pour conserver et manipuler les éléments par leurs interfaces. Dans ce cas, il faut utiliser l'opérateur '<-' pour renseigner l'élément réel manipulé par l'intermédiaire de l'interface. La syntaxe est la suivante : <NomVariable> est une <Interface> <- ... Exemple : // Après une reconnexion, on récupère le panier précédent PanierCourant est un Panier <- RestaurePanierPrécédente()
Si l'élément réel n'implémente pas toutes les méthodes ou toutes les propriétés, la variable est affectée avec 'Null' et aucune erreur n'est générée. Il est donc possible de vérifier si l'élément a bien pu être converti en son interface en le comparant à Null. Par contre, toute utilisation ultérieure de la variable provoquera une erreur. Il est possible d'utiliser une interface pour typer un paramètre de procédure. Si une procédure attend un paramètre du type "Interface Xxx", tout élément qui implémente toutes les procédures et toutes les méthodes de l'interface peut être passé en paramètre. Si l'élément n'implémente pas toutes les méthodes et toutes les propriétés, une erreur de compilation sera levée. Il n'est pas nécessaire que la classe réelle implémente explicitement l'interface. Il suffit que toutes les méthodes et toutes les propriétés soient présentes. - Les interfaces peuvent être utilisées depuis un composant externe.
- Interfaces exportées depuis un composant : Il est conseillé de ne pas déclarer l'interface dans le code d'initialisation du projet. En effet, dans ce cas, les projets appelant le composant ne verront pas l'interface.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|