Encapsulation Wlangage Poo

AUTEUR Code-Codage ~ 09/02/2022
Programmation WLANGAGE Professionnel

Après avoir compris à travers le Tutoriel POO sur l'héritage multiple des classes, qui n'est autre que l'implémentation des plusieurs classes, toujours dans la logique de la programmation orienté objet cette fois-ci découvrons ensemble l'encapsulation :

  1. Que ce que c'est ?
  2. Comment l'utiliser ?
  3. Quel est son avantage ?
  4. Pourquoi l'utiliser ?

Encapsulation

L’encapsulation est un mécanisme consistant à rassembler les données et les méthodes au sein d’une structure en cachant l’implémentation de l’objet, c’est-à-dire en empêchant l’accès aux données par un autre moyen que les services proposés.

Que ce que c'est ?

En Programmation, L'encapsulation est un mécanisme consistant à rassembler les données et les méthodes au sein d'une structure en cachant l'implémentation de l'objet, c'est-à-dire en empêchant l'accès aux données par un autre moyen que les services proposés, elle permet donc de garantir l'intégrité des données contenues dans l'objet. https://web.maths.unsw.edu.au/~lafaye/CCM/poo/encapsul.htm

L'utilisateur d'une classe n'a pas forcément à savoir de quelle façon sont structurées les données dans l'objet, cela signifie qu'un utilisateur n'a pas à connaître l'implémentation. Ainsi, en interdisant l'utilisateur de modifier directement les attributs, et en l'obligeant à utiliser les fonctions définies pour les modifier (appelées interfaces), on est capable de s'assurer de l'intégrité des données (on pourra par exemple s'assurer que le type des données fournies est conforme à nos attentes, ou encore que les données se trouvent bien dans l'intervalle attendu).

L'encapsulation permet de définir des niveaux de visibilité des éléments de la classe. Ces niveaux de visibilité définissent les droits d'accès aux données selon que l'on y accède par une méthode de la classe elle-même, d'une classe héritière, ou bien d'une classe quelconque. Il existe trois niveaux de visibilité:

  • publique: les fonctions de toutes les classes peuvent accéder aux données ou aux méthodes d'une classe définie avec le niveau de visibilité public. Il s'agit du plus bas niveau de protection des données
  • protégée: l'accès aux données est réservé aux fonctions des classes héritières, c'est-à-dire par les fonctions membres de la classe ainsi que des classes dérivées
  • privée: l'accès aux données est limité aux méthodes de la classe elle-même. Il s'agit du niveau de protection des données le plus élevé
//	Déclaration de la porté des varaibles
PUBLIC
NomClient est une chaîne

// Protégé le prix du Produit
PROTÉGÉ
PrixProduit est une monétaire

PUBLIC
MessageFlash est une chaînes

En Réseau Informatique, L'encapsulation, en informatique et spécifiquement pour les réseaux informatiques, est un procédé consistant à inclure les données d'un protocole dans un autre protocole. https://fr.wikipedia.org/wiki/Encapsulation_(r%C3%A9seau)

Comment l'utiliser ?

Il suffit de déclarer la variable dont vous voulez encapsulé (Protégé) pour ce faire il vaut l'attribué une porté d'accessibilité, la portée pour encapsulé une donnée contenue dans une variable, est l'utilisation de PRIVATE ou PROTECTED pour le cas de WLANGAGE, si vous développer en francais alors il vous suffit de déclarer PRIVE ou PROTEGE comme décrit dans l'exemple ci-dessous

PROTÉGÉ 
PrixProduit est une monétaire

PRIVÉ
Prix est une entier

Est donc vos variables sont protégés et les données qui y se trouve, si la variable est déclaré avec la portée Privée ou Protégée, il sera donc difficile de la manipuler dépuis l'extérieur, son accès est limité dans la zone où elle est déclarée, pour ce faire et manipulé la variable dépuis l'extérieur il faudrais donc utiliser les accesseurs le getter et le setter appelé communement routine 

Les accesseurs (Get) sont des méthode qui permettent de rétourner les valeurs d'un attribut, ils permettent donc de récupére les données membres privé ou protégé sans y accéder directement de l'extérieur ; ils sécurisent donc l'attribut en restreignant sa modification.

//Getter, valable pour la portée Privée ou Protégée
PROCÉDURE PUBLIQUE PrixProduit() : monétaire

RENVOYER PrixProduit

Les mutateurs (Set) permettent de modifier l'état de données membres tout en vérifiant si la valeur que l'on veut donner à la donnée membre respecte les normes de celle-ci ou diverses règles de cohérence.

//Setter, valable pour la portée Privée ou Protégée
PROCÉDURE PUBLIQUE PrixProduit(Valeur est un monétaire)

PrixProduit=Valeur

Quel est son avantage ?

L'encapsulation, son avantage est qu'il permet de définir des niveaux de visibilité des éléments de la classe. les droits d'accès aux données selon que l'on y accède par une méthode de la classe elle-même, d'une classe héritière, ou bien d'une classe quelconque.

Pourquoi l'utiliser ?

Comme, mentionner dans l'avantage, il est tuliser pour définir le niveau de visibilité des éléments de la classe, attribué les droit d'accès aux donnée, dans les classes.

Prénons un exemple d'utilisation de l'encapsulation en Wlangage, notre exemple consiste donc a créer un petit programme de saisie client, comme information dont notre programme aura besoin, ce le Nom du Clien et le Prix du Produits

Enc suite nous allons créer une classe nomme Clients, cette classe donc va conténir, la logique qui sera utiliser dans notre programme

Déclaration des variable et leurs portés

Clients est une Classe

// Déclaration de la porté des varaibles
PUBLIC
NomClient est une chaîne

// Protégé le prix du Produit
PROTÉGÉ
PrixProduit est une monétaire

PUBLIC
MessageFlash est une chaînes
FIN

Fontion MessagesFlash, pour récupéré les différents messages stocker dans la variable

//Récupéré les MessagesFlash et stocker dans la procédure
PROCÉDURE MessageFlashSuccess()
RENVOYER MessageFlash

Au niveau du constructeur

//Utilisation du constructeur et Attribution des paramètres
PROCÉDURE Constructeur(ConstNomClient, ConstPrixProduit)

SI ConstNomClient = "" ALORS
MessageFlash = "Nom client Vide"
SINON
SI ConstPrixProduit = "" ALORS
MessageFlash = "Prix produit vide"
SINON
SI ConstNomClient = "" ET ConstPrixProduit = "" ALORS
MessageFlash = "Les champs sont vide"
SINON
NomClient = ConstNomClient
PrixProduit = ConstPrixProduit
MessageFlash = "Tout les champs sont Remplis"
FIN
FIN
FIN

Accessseur (Get)

//Getter
PROCÉDURE PUBLIQUE PrixProduit() : monétaire

RENVOYER PrixProduit

Mutateur (Set)

//Setter
PROCÉDURE PUBLIQUE PrixProduit(Valeur est un monétaire)

PrixProduit=Valeur

Au niveau du boutton valider


//Déclaration de l'objet

objClient est un Clients(Nom, Prix)

// Affichage de la fonction MessageFlash
Info(objClient.MessagesFlash())

Code Complet

Clients est une Classe

// Déclaration de la porté des varaibles
PUBLIC
NomClient est une chaîne

// Protégé le prix du Produit
PROTÉGÉ
PrixProduit est une monétaire

PUBLIC
MessageFlash est une chaînes
FIN

//Récupéré les MessagesFlash et stocker dans la procédure
PROCÉDURE MessagesFlash()
RENVOYER MessageFlash


//Utilisation du constructeur et Attribution des paramètres
PROCÉDURE Constructeur(ConstNomClient, ConstPrixProduit)

SI ConstNomClient = "" ALORS
MessageFlash = "Nom client Vide"
SINON
SI ConstPrixProduit = "" ALORS
MessageFlash = "Prix produit vide"
SINON
SI ConstNomClient = "" ET ConstPrixProduit = "" ALORS
MessageFlash = "Les champs sont vide"
SINON
NomClient = ConstNomClient
PrixProduit = ConstPrixProduit
MessageFlash = "Tout les champs sont Remplis"
FIN
FIN
FIN

//Getter
PROCÉDURE PUBLIQUE PrixProduit() : monétaire

RENVOYER PrixProduit

//Setter
PROCÉDURE PUBLIQUE PrixProduit(Valeur est un monétaire)

PrixProduit=Valeur



//Déclaration de l'objet

objClient est un Clients(Nom, Prix)

// Affichage de la fonction MessageFlash
Info(objClient.MessagesFlash())


Le WLangage propose plusieurs types de variable pour permettent l'énumération et la manipulation dynamique des objets d'une classe. Un développeur maîtrisant la Programmation Orientée Objet (POO) peut ainsi créer des méthodes entièrement paramétrées qui s'adaptent aux objets contenus dans une classe.

L'utilisation de l'encapsulation, accesseur et mutateur, dépenda de chaque développeur selon son niveau de connaissance et la maitrise de la programmation orienté objet si l'on est expérimenté, cependant Le but de la POO consiste à définir et faire interagir entre eux des objets, compris ici comme tous types de structures issues d'un langage donné.



Réponses