22
août
2013
Windev : normes de programmation pour la POO
août
2013
Un article de dsr57
1 Commentaire
Je continue la rédaction du blog en poursuivant sur les normes de programmation, je vais maintenant m’attaquer à la POO. Ce billet n’est pas une explication de la programmation objet en windev, elle explique la convention de nommage des différents éléments de la POO. dans un premier temps les normes pour le nom des classes, ensuite les membres et leurs propriétés, les méthodes et enfin un petit détail sur l’héritage.
Les classes
Windev ne gère pas explicitement les classes abstraites. Afin de bien différencier les classes abstraites et publiques, nous allons utiliser une convention de nommage sur le même principe :
-
La portée : Première lettre (a : abstrait, p : public).
le type : « c » comme classe suivi de « _ ».
Le nom : Tout ce qui est après le symbole « _ ». Pour cette partie, utiliser un nom explicite. le nom commence par une minuscule et chaque changement de mot commence par une majuscule.
Exemple :
ac_document : classe abstraite
pc_article : classe publique
pc_article : classe publique
La déclaration d’un objet reprend la convention de nommage pour les variables de type simple, le type étant un objet, nous allons utiliser la lettre « o ».
Exemple :
lo_article est une pc_article
Les membres
les membres sont les données de l’objet. Celles-ci sont propres à l’objet, je les considère comme des variables locales, elles sont donc soumises à la convention de nommages des variables locales.
Exemple :
pc_article est une classe
PRIVEE
ls_refCommerciale est une chaine
pm_montantHt est un monetaire
fin
PRIVEE
ls_refCommerciale est une chaine
pm_montantHt est un monetaire
fin
Le niveau d’accès des membres est soit privé, soit protégé, et je définis les droits de lecture et écritures avec les propriétés. Une propriété doit avoir le même nom que sa variable sans la portée et le type. Pour l’exemple précédent on obtient :
PROCEDURE refCommerciale()
renvoyer :ls_refCommerciale
PROCEDURE refCommerciale(ps_valeur est une chaine)
:ls_refCommerciale=ps_valeur
renvoyer :ls_refCommerciale
PROCEDURE refCommerciale(ps_valeur est une chaine)
:ls_refCommerciale=ps_valeur
Les méthodes
Les méthodes sont les opérations applicables aux objets. Pour celles ci je commence une méthode par « recup » si la méthode me permet de récupérer un objet et « recupListe » si la méthode permet de récupérer un tableau d’objet.
Héritage
L’héritage est un principe propre à la programmation orientée objet, permettant de créer une nouvelle classe à partir d’une classe existante. Le constructeur de la classe fille doit commencer par l’appel du constructeur de la classe principale. C’est à dire que le première ligne de code du constructeur de la classe fille doit faire un appel au constructeur de la classe de base. Ce réflexe vient de mon expérience en programmation Java, Java fait un appel automatique au constructeur de la classe héritée, sauf si celui-ci est appelé dans le constructeur. Windev n’effectue pas cet appel en automatique, il faut donc le forcer.
Exemple :
PROCEDURE Constructeur()
//-----Appel au constructeur par défaut
Ancêtre:Constructeur()
//-----Appel au constructeur par défaut
Ancêtre:Constructeur()
PROCEDURE Constructeur()
//----Appel à un constructeur
Ancêtre:Constructeur("Peugeot","308")
//----Appel à un constructeur
Ancêtre:Constructeur("Peugeot","308")
1 Commentaire + Ajouter un commentaire
Commentaires récents
- Héritage en WinDev : BUG ou subtilité du W-langage??? dans
- Héritage en WinDev : BUG ou subtilité du W-langage??? dans
- Héritage en WinDev : BUG ou subtilité du W-langage??? dans
- Héritage en WinDev : BUG ou subtilité du W-langage??? dans
- Windev : Norme de programmation pour les procédures et les champs graphiques dans
merci