J'ai parcouru de nombreuses théories sur ce qu'est l'encapsulation et les trois techniques de sa mise en œuvre, qui sont l'association, l'agrégation et la composition.
Encapsulation
L'encapsulation est la technique consistant à rendre les champs d'une classe privés et à fournir l'accès aux champs via des méthodes publiques. Si un champ est déclaré privé, il n'est accessible à personne en dehors de la classe, masquant ainsi les champs de la classe. Pour cette raison, l'encapsulation est également appelée masquage des données.
L'encapsulation peut être décrite comme une barrière protectrice qui empêche le code et les données d'être accédés de manière aléatoire par un autre code défini en dehors de la classe. L'accès aux données et au code est étroitement contrôlé par une interface.
Le principal avantage de l'encapsulation est la possibilité de modifier notre code implémenté sans casser le code des autres utilisateurs de notre code. Avec cette fonctionnalité, l'encapsulation donne la maintenabilité, la flexibilité et l'extensibilité à notre code.
Association
L'association est une relation où tous les objets ont leur propre cycle de vie et il n'y a pas de propriétaire. Prenons un exemple d'enseignant et d'élève. Plusieurs étudiants peuvent s'associer à un seul enseignant et un seul étudiant peut s'associer à plusieurs enseignants, mais il n'y a pas de propriété entre les objets et les deux ont leur propre cycle de vie. Les deux peuvent créer et supprimer indépendamment.
Agrégation
L'agrégation est une forme d'association spécialisée dans laquelle tous les objets ont leur propre cycle de vie, mais il y a propriété et un objet enfant ne peut pas appartenir à un autre objet parent. Prenons un exemple de département et d'enseignant. Un seul enseignant ne peut pas appartenir à plusieurs départements, mais si nous supprimons le département, l'objet enseignant ne sera pas détruit. Nous pouvons le considérer comme une relation «a-un».
Composition
La composition est encore une forme spécialisée d'agrégation et nous pouvons appeler cela une relation de «mort». Il s'agit d'un fort type d'agrégation. L'objet enfant n'a pas de cycle de vie et si l'objet parent est supprimé, tous les objets enfant seront également supprimés. Reprenons un exemple de relation entre la maison et les chambres. La maison peut contenir plusieurs pièces mais il n'y a pas de vie indépendante d'une pièce et aucune pièce ne peut appartenir à deux maisons différentes. Si nous supprimons la maison, la pièce sera automatiquement supprimée.
La question est:
Maintenant, ce sont tous des exemples du monde réel. Je cherche une description sur la façon d'utiliser ces techniques dans le code de classe réel. Je veux dire quel est l'intérêt d'utiliser trois techniques différentes pour l'encapsulation , comment ces techniques pourraient être mises en œuvre et comment choisir la technique applicable à un moment donné.