Sobre AGREGAÇÂO x COMPOSIÇÃO [RESOLVIDO]

Vi em uma aula de JAVA que a relação que acontece entre uma classe LUTADOR e LUTA é de agregação, mas não seria de COMPOSIÇÃO sendo que sem lutadores a classe LUTA não existiria?

O que eu aprendi é basicamente isso tambem… mas com um exemplo um pouco diferente, imagina em uma classe Galinha e uma Classe Porco. A classe Galinha agrega a classe OVO, enquanto a classe Porco, compõe a classe Bacon… Deu pra sacar mais ou menos a ideia?

1 curtida

Como eu aplicaria estes conceitos em seu exemplo de Classe Galinha e Classe Porco?

/* Num relacionamento de Composição podemos entender que classes que são compostas por outras precisam destas para “viver”, para “existir”. Por exemplo, a classe Coração compõe a classe Corpo Humano. Sem o coração o corpo humano não vive. */

/* Num relacionamento de Agregação, podemos entender que classes que são agregadas por outras não precisam destas para “viver”, para “existir”. Por exemplo, a classe Unha agrega a classe Corpo Humano. Sem a unha o corpo humano vive sem grandes dificuldades. */

Basicamente isso mesmo, tem 3 perguntas pra vc decidir se o uso da agregação ou composição é o correto.
1º se existe TODO-PARTE
Time (Objeto-Todo) e Atleta (Objeto-Parte) por exemplo
2º Se o todo é unico.
O time é unico.

3º se existe vida após o final do processo.
Por exemplo, a galinha sobrevive após o OVO, o Porco não.

Outro bom exemplo…

public class Carro {
    //composições
    private Motor motor;
    private int rodas;
    private Direcao direcao;

    //agregações
    private int vidrosEletricos;
    private int travasEletricas;
    private ArCondicionado ar;

    public Carro() {
        //instancia composições aqui...
    }

    public void setArCondicionado(ArCondicionado ar) {
        this.ar = ar; //agregações vem de fora...
    }
}
1 curtida

Obg pelas respostas, e nas Classes LUTA e LUTADOR existi que relação ?

Creio que seja de Agregação, devido ao todo existir mesmo sem as partes

1 curtida

Lutador é o todo, Luta é a parte ?

O contrario, lutador é parte, luta é todo

1 curtida

Cara, eu não consigo imaginar em que exista uma luta sem lutadores, até pq quando criamos a classe LUTA a gente “puxas” Lutadores que são objetos da classe Lutador, se a gente não fizesse isso quem iria Lutar? Como a classe Luta pode existir sem termos Lutadores? O todo Luta iria sobreviver sem as partes Lutadores, então pode ter uma Luta sem lutadores?

Então cara, ai ja entra a parte de abstração. pois concorda que uma luta pode não ocorrer, mas ainda assim existe luta, a luta não ira ‘‘morrer’’ caso ela seja cancelada pelos lutadores, mas sim, concordo tambem com seu ponto de vista de que para haver luta precisa ter lutadores… depende do ponto de vista e da abstração que vc esta tirando disso…

1 curtida