Composição e agregação

Classes e objetos podem ser relacionados entre si. A herança descreve um relacionamento "É A". Um leão É UM animal. Esse relacionamento é facilmente expresso usando herança, onde Animalseria a classe pai e Lionseria a filha. Mas nem todo relacionamento no mundo é adequadamente descrito dessa maneira. Por exemplo, um teclado definitivamente tem alguma relação com um computador, mas não é um computador . As mãos têm alguma relação com uma pessoa, mas não são uma pessoa. Esses casos representam um tipo diferente de relacionamento — não "É A", mas "TEM A". Mãos não são uma pessoa, mas uma pessoa TEM mãos. Um teclado não é um computador, mas um computador TEM UM teclado. "TEM UM". A diferença entre esses conceitos está no "rigidez" das relações. Vamos dar um exemplo simples: temos um arquivo Car. Todo carro tem um motor. Além disso, todos os carros podem transportar passageiros. Qual é a diferença fundamental entre os campos Engine enginee Passenger[] passengers? Se o passageiro Aestiver sentado dentro de um carro, isso não significa que os passageiros Be Ctambém não possam estar no carro. Um carro pode acomodar vários passageiros. Além do mais, todos os passageiros podem sair do carro, mas ele continuará funcionando sem problemas. A relação entre a Carclasse e o Passenger[] passengersarray é menos estrita. É chamado de agregação . Aqui está um bom artigo sobre este tópico: Relacionamentos entre classes (objetos). Ele fornece outro bom exemplo de agregação. Digamos que temos uma Studentclasse que representa um aluno e uma StudentGroupque representa um grupo de alunos. Um aluno pode ser membro de um clube de física, um fã-clube estudantil de Star Wars ou um clube de comédia. A composição é um tipo mais estrito de relacionamento. Ao usar composição, um objeto possui outro objeto, mas não pode pertencer a outro objeto do mesmo tipo. O exemplo mais simples é o motor de um carro. Se um carro tem motor, esse motor não pode pertencer a outro carro. Como você pode ver, essa relação é muito mais estrita do que a de Care Passengers.Relações entre classes.  Herança, composição e agregação - 4