Teria como alguém me passar um exemplo de composição por gentileza.
obrigado.
Uma das grandes composições de Bach:
Brincadeiras a parte:
[code]public class Carro {
private Motor motor;
public Carro(Motor motor) {
if (motor == null)
throw new IllegalArgumentException(“Um carro tem um motor!”);
this.motor = motor;
}
}[/code]
Aí está a composição entre o carro e o motor.
agora não saquei,to estudando herança e me falaram que e melhor usar composição,ainda não entendi a vantagem. Se isso que tu me passou é composição então uso direto composição sem saber o que era.
Oi cleber_zeh,
A coisa não é tão simples assim; vale a pena vc fazer uma pesquisa sobre o assunto para tirar algumas conclusões, segue abaixo 2 links pra vc começar
http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/pat/herancavscomposicao.htm
http://www.javaworld.com/jw-11-1998/jw-11-techniques.html
flw
Oi.
Eu não entendi uma coisa
Se eu mudar o tipo de retorno do método getPeel() para Peel, vai resultar em erro no código da classe Apple e eu teria que mudar a interface dela para retornar um objeto do tipo Peel e, assim, o código da classe Example2 “quebraria”. Não entendi isso… Assim, eu sempre vou ter que mudar alguma coisa da classe front-end, certo?
[editado]
Eu acho que vai depender do momento. As vezes a herança cai melhor, as vezes a composição. Mas sei lá hein… [/editado]
O problema é que com a herança, mudanças na classe pai podem vir a quebrar as classes filhas. Essa quebradeira acontece principalmente quando a herança é usada para agregar funcionalidade, e não especializar um comportamento.
Sem falar que com a herança você herda todas as responsabilidades de seus ancestrais, mesmo que não queira. Vira uma bola de neve.
São todos aqueles problema que vêm do forte acoplamento entre as classes.