cami-la / collections-java-api-2023

Este repositório é referente ao curso "Collection Framework API Java" e é uma valiosa contribuição para a comunidade de desenvolvedores Java, fornecendo exemplos práticos e recursos educacionais relacionados à poderosa API de coleções da linguagem Java.
https://web.dio.me/course/conhecendo-collections-java/learning/c5d6f4e1-6d05-4eea-93d8-d292c708999f
1.05k stars 766 forks source link

Dúvida: Classe na qual instancio os métodos #66

Open fabcurvello opened 4 months ago

fabcurvello commented 4 months ago

Olá Cami-la, tudo bem?

Sou seu aluno no Bootcamp DIO Java Backend. No momento estou no seu curso das Collections.

Minha dúvida é pertinente à estrutura dos exercícios.

Exemplo: No exercício do Catalogo de Livros existem duas classes: Uma de modelo de negócio Livro, e outra do Catálogo onde é aplicada a Lista de Livros e os diversos métodos de manipulação dos Livros, incluindo nessa última o método main.

Eu sempre acreditei que estes métodos referentes à manipulação dos Livros (adicionarLivro, pesquisarPorTitulo, livrosIntervalo...) deveriam ficar na Classe Livro. Não seria isso?

A Classe Catalogo deveria acionar os métodos importando da Classe Livro. Penso isso porque sempre vi na OO que o tema desses métodos é referente à classe de origem então devem ficar lá.

Mas com o tema das collections isso realmente me deixou mais confuso.

Olha, PARABÉNS pelo curso! Você é 10, é inspiração. Muito obrigado por compartilhar seu conhecimento.

Fabrício Curvello

linkedin: fabriciocurvello github: fabcurvello youtube: fabriciocurvello

CaioRC39 commented 3 months ago

Sobre a classe Livro: A classe Livro deve representar um livro e conter propriedades e comportamentos que descrevem um livro. Métodos que fazem sentido estarem na classe Livro: Métodos de acesso (getters e setters) para propriedades como título, autor, preço, etc; Métodos que definem comportamentos específicos de um livro, como aplicar desconto no preço, ou talvez calcular o imposto sobre o preço (não foi o caso, mas esse é somente um exemplo).

Sobre a classe Catalogo: A classe Catalogo deve ser responsável por gerenciar uma coleção de livros. Ela deve conter métodos para adicionar, remover, pesquisar, listar, e manipular a coleção de livros. Isso porque a responsabilidade de gerenciar a coleção pertence ao catálogo, não aos livros individuais.

A classe Livro contém apenas a lógica relacionada a um livro. A classe Catalogo contém apenas a lógica relacionada à coleção de livros.