Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Qual a real utilidade de se usar composição?

Parando para pensar... Mesmo depois de criar essa composição, chegamos na mesma coisa de antes: Adm,Gerente,Cliente usando o mesmo código, com uma única diferença: queimar uns neurônios a mais para criar uma classe e instanciar dentro do construtor de cada um.

O objetivo não era fugir de CTRL C/ CTRL V de métodos replicados em várias classes?

Posso estar entendendo errado, agradeço desde já.

2 respostas
solução!

Olá Thiago, tudo bem?

A composição é uma técnica muito útil para evitar a duplicação de código em várias classes, além de permitir a criação de objetos mais complexos a partir de objetos mais simples.

No caso específico que você mencionou, a criação de uma classe "Pessoa" que é composta por outras classes como "Adm", "Gerente" e "Cliente", permite que você reutilize o código comum a todas essas classes em um único lugar. Dessa forma, caso haja alguma mudança nesse código comum, você precisará alterá-lo em apenas um lugar, ao invés de em várias classes.

Além disso, a composição também permite que você crie objetos mais complexos a partir de objetos mais simples. Por exemplo, você pode criar um objeto "Empresa" que é composto por vários objetos "Pessoa". Essa técnica é muito útil para modelar sistemas mais complexos e hierárquicos.

Espero ter ajudado a esclarecer sua dúvida. Se tiver mais alguma pergunta, é só perguntar!

Espero ter ajudado e bons estudos!

Thiago, boa tarde.

Sim, Adm, Gerente e Cliente usaram o mesmo codigo, sendo mais especifico, utilizaram os mesmos metodos.

Mas se voce notar, toda a logica desses metodos esta na classe AutenticacaoUtil, ou seja, caso seja necessaria alguma alteracao nessa logica, eu mudaria em apenas um lugar ao inves de 3 lugares diferentes.

Os metodos que foram copiados/colados possuem 3 linhas. A logica por tras da autenticacao poderia ter 800 linhas, imagina alterar 800 linhas em Varias classes diferentes.

Sim, os metodos estao duplicados, mas a logica esta contida em um unico lugar.