Composition et agrégation

Les classes et les objets peuvent être liés les uns aux autres. L'héritage décrit une relation "EST A". UN LION EST UN ANIMAL. Cette relation est facilement exprimée en utilisant l'héritage, où Animalserait la classe parent et Lionserait l'enfant. Mais toutes les relations dans le monde ne sont pas correctement décrites de cette façon. Par exemple, un clavier a certainement une relation avec un ordinateur, mais ce n'est pas un ordinateur . Les mains ont une certaine relation avec une personne, mais elles ne sont pas une personne. Ces cas représentent un type de relation différent - pas "EST A", mais "A A". Les mains ne sont pas une personne, mais une personne A des mains. Un clavier n'est pas un ordinateur, mais un ordinateur A UN clavier. "A UN". La différence entre ces concepts réside dans la « rigueur » des relations. Prenons un exemple simple : Nous avons un Car. Chaque voiture a un moteur. De plus, chaque voiture peut transporter des passagers. Quelle est la différence fondamentale entre les champs Engine engineet Passenger[] passengers? Si le passager Aest assis à l'intérieur d'une voiture, cela ne signifie pas que les passagers Bet Cne peuvent pas également être dans la voiture. Une voiture peut accueillir plusieurs passagers. De plus, tous les passagers peuvent sortir de la voiture, mais elle continuera à fonctionner sans problème. La relation entre la Carclasse et le Passenger[] passengerstableau est moins stricte. C'est ce qu'on appelle l'agrégation . Voici un bon article sur ce sujet : Relations entre classes (objets). Il fournit un autre bon exemple d'agrégation. Disons que nous avons une Studentclasse qui représente un étudiant et une StudentGroupqui représente un groupe d'étudiants. Un étudiant peut être membre d'un club de physique, d'un fan club étudiant de Star Wars ou d'un club de comédie. La composition est un type de relation plus strict. Lors de l'utilisation de la composition, un objet a un autre objet, mais il ne peut pas appartenir à un autre objet du même type. L'exemple le plus simple est un moteur de voiture. Si une voiture a un moteur, alors ce moteur ne peut pas appartenir à une autre voiture. Comme vous pouvez le voir, cette relation est beaucoup plus stricte que celle de Caret Passengers.Relations entre classes.  Héritage, composition et agrégation - 4