DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / POO (Programmation Orientée Objet)
  • Implémentation
  • Variables
  • Passage de paramètres
  • Composant externe
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
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.
Exemple
// 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

Implémentation

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.

Variables

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.

Passage de paramètres

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.

Composant externe

  • 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.
Version minimum requise
  • Version 23
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale