3
respostas

modelo livro

fala ae pessoal , e fiquei com uma duvida a respeito do modelo utilizado na aula, por exemplo: em uma aplicaçao oo eu nao teria um classe livro , com os atributos nome, descricao e preco? , alem disso livro nao seria um item da minha livraria , nao teria que ter uma classe livraria que adicionava os livros , para depois salvar no banco? ta certo isso que falei?

3 respostas

Olá Luan, tudo bem com você?

Acredito que dessa forma você acabou generalizando demais a relação, no caso da aplicação feita, o conjunto dela forma uma livraria, quando estamos modelando a nossa aplicação as nossas classes precisam ter sentido e realizar de preferência uma única tarefa

Dessa maneira que você passou dizemos que a classe Livraria é anêmica, pois ela não faz nada, apenas fica intermediando sem realizar nada :)

Na verdade o papel de intermediar a relação entre a nossa aplicação e o banco de dados é responsabilidades das classes DAO, e no caso, a nossa "livraŕia" seria o banco de dados com os registros dos livros!

Compreendeu ?

Abraços e Bons Estudos!

fala ae geovani, pq eu estaria generalizando muito dessa forma cara? gostaria de outro exemplo se possivel cara

Opa Luan, vou tentar explicar primeiro com o exemplo desse projeto e depois faço um paralelo com seu exemplo

Em nosso caso temos a aplicação que é uma livraria, então temos a seguinte separação:


  • Controladores : São chamados dado uma requisição e controlam o fluxo do que será feito

  • DAO: São as classes responsáveis por fazer a comunicação entre a nossa aplicação e o banco de dados

  • Modelos: Contém a estrutura básica daquele objeto que queremos criar e responsável pela validação

  • Rotas: Definem o ponto da requisição e que método do controlador será utilizado


Então, nesse sentido cabe a gente pensar um pouco, no que se encaixa a classe Livraria?

Se ela for responsável por enviar para o banco de dados, ela é desnecessária pois já temos o livro-dao que tem a exclusiva missão de fazer isso

Ela é um modelo? Não faz muito sentido criar uma livraria, pois queremos receber os dados do usuário e já salvar no banco de dados, ou, pegar os dados do banco e já renderizar na página

Então dessa maneira a gente acabou fazendo uma conexão natural de que livros pertencem a uma livraria, mas quando trazemos para o mundo do código essa relação perde um pouco de sentido, então a classe acaba sendo desnecessária


Agora um exemplo de uma classe que poderia receber livros e depois enviar para o banco de dados

Um classe carrinho, então quando entramos no site e selecionamos elementos podemos ir salvando em um objeto carrinho que recebe o livro e a quantidade, e quando finalizamos a compra ele faz a requisição para o banco de dados :)

Mas dificilmente queremos fazer isso que você disse de guardar coisas, a ideia é sempre mandar ou receber de nosso banco! Da maneira que você fez a analogia acabou perdendo um pouco de sentido, pois parece que podemos criar uma classe Shopping para armazenar a livraria, que armazena os livros

Quando na verdade o processo de fazer transações com objeto do tipo livro, ja tornam a nossa aplicação como um todo uma livraria :)

Ficou mais claro ?

Abraços e Bons Estudos!