Lecture Protege
Lecture Public
Lecture
permet de spécifier que l'accès en lecture est étendu à des traitements qui n'ont pas l'accès nativement en lecture/écriture à cette définition du fait de sa définition privée ou protégée.
L'accès en lecture d'un objet Prive peut être étendu pour les traitements Protege ou Public. L'accès en écriture reste Prive.
L'accès en lecture d'un objet Protege peut être étendu pour les traitements Public. L'accès en écriture reste Protege.
L'avantage d'utiliser l'instruction Lecture
par rapport à l'encapsulation de la propriété ou de la variable dans une fonction est, d'une part, de rendre le programme efficace, et, d'autre part, de conserver le principe d'une propriété ou d'une variable.
La restriction en écriture issue de l'extension de l'accès en lecture empêche également la lecture de la référence de la définition. Cette règle garantit que la définition ne sera pas modifiée en dehors d'un traitement où cette opération est autorisée.
A ce jour, seule les propriétés des types et les variables globales peuvent avoir un accès différencié en lecture et en écriture. Typiquement, la plupart des objets sémantiques automatiquement construit provenant d'une extension d'Up ! 5GL, telle les exceptions, sont des objets privés avec un accès en lecture protégé ou public.
Type T1
/*****/
Prive :
C : Entier Lecture Protege;
/* C est modifiable uniquement par les méthodes privées et lisible par toutes les méthodes, même celles des types qui héritent de T1. */
Fin Type
Type T2
/*****/
Prive :
C : Entier Lecture Public;
/* C est modifiable uniquement par les méthodes privées et lisible par toutes les traitements. */
Fin Type
Variable
/******/
Prive :
V1 : Entier Lecture Protege;
/* V1 est modifiable uniquement par ce composant et lisible par tous les autres composants du module. */
V2 : Entier Lecture Public;
/* V2 est modifiable uniquement par ce composant et lisible par tous les autres composants de tous les modules. */
- | - | - | - | - | - | - | - | - |