Sou aprendiz e cai nesse dilema:
"No livro Design Patterns, logo no inicio os autores citam 2 regras de ouro. Uma é “evite heranca, prefira composicao”, e a outra “programe voltado a interface e nao a implementacao”.
Texto Retirado da Apostila da Caelum (JAVA e Orientacao a Objetos)
“Mesmo que eles(objetos) tivessem atributos em comum, utilizar interfaces é uma maneira muito mais elegante de modelar suas classes. Elas tambem trazem grandes vantagens em nao acoplar as classes(heranca traz muito acoplamento, muitos autores classicos dizem que em muitos casos herenca quebra o encapsulamento, pensamento o qual os autores dessa apostila concordam plenamente)”
Texto Retirado da Apostila da Caelum(JAVA e Orientacao a Objetos)
Agora vamos as duvidas:
1.Interface é uma particularidade do JAVA ou existe em todas as linguagens “orientadas a objetos” ?
- O que a primeira regra de ouro diz nao dobraria o código escrito ? :shock:
3.Os autores da caelum citam que mesmo se os objetos tivessem metodos em comum, usar interface é melhor.
Uai, a interface apenas me diz os metodos que as classes devem ter, logo teriam que ser escrito em cada uma delas e a declaracao dos atributos tambem ?? Caramba, essa afirmacao nao deixaria meu codigo bem maior?
- “heranca traz muito acoplamento, muitos autores classicos dizem que em muitos casos herenca quebra o encapsulamento, pensamento o qual os autores dessa apostila concordam plenamente” . Nao entendi completamente essa afirmacao, alguem me ajuda? Por que acoplamento é ruim?
Ficou no ar que heranca nao deve ser usada("…mesmo se os objetos tivessem metodos em comum…") :?:
Porem dizem que heranca deve ser usada na mesma apostila, já que diminui código e etc… :?:
Bom, sou iniciante em POO . Ainda nao ficaram claras algumas ideias. Peço a ajuda de todos. :?
Agradeco desde já,
Renan