Melhorias e Atualizações nas Classes Bootcamp, Curso, Mentoria e Dev
Olá!
Realizei algumas melhorias e atualizações nas classes Bootcamp, Curso, Mentoria e Dev. Abaixo estão as principais modificações realizadas e os testes realizados para garantir que as mudanças funcionam corretamente.
Modificações Realizadas
1. Classe Bootcamp
Construtor Adicionado: Adicionamos um construtor para inicializar nome e descricao diretamente. Isso torna a criação de um Bootcamp mais intuitiva e garante que todos os atributos obrigatórios sejam fornecidos na criação.
Método toString() Adicionado: Adicionada uma representação em string do Bootcamp para facilitar a visualização dos dados em logs e prints.
Remoção dos Métodos setNome e setDescricao: Tornamos nome e descricao imutáveis para garantir que esses atributos não sejam alterados após a criação do Bootcamp.
Atualização do equals() e hashCode(): Atualizados para considerar apenas os atributos imutáveis (nome e descricao) para garantir a consistência na comparação e na geração de hash.
Código Atualizado:
public class Bootcamp {
private final String nome;
private final String descricao;
private final LocalDate dataInicial;
private final LocalDate dataFinal;
private final Set<Dev> devsInscritos = new HashSet<>();
private final Set<Conteudo> conteudos = new LinkedHashSet<>();
public Bootcamp(String nome, String descricao) {
this.nome = nome;
this.descricao = descricao;
this.dataInicial = LocalDate.now();
this.dataFinal = dataInicial.plusDays(45);
}
public String getNome() {
return nome;
}
public String getDescricao() {
return descricao;
}
public LocalDate getDataInicial() {
return dataInicial;
}
public LocalDate getDataFinal() {
return dataFinal;
}
public Set<Dev> getDevsInscritos() {
return devsInscritos;
}
public Set<Conteudo> getConteudos() {
return conteudos;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Bootcamp bootcamp = (Bootcamp) o;
return nome.equals(bootcamp.nome) && descricao.equals(bootcamp.descricao);
}
@Override
public int hashCode() {
return Objects.hash(nome, descricao);
}
@Override
public String toString() {
return "Bootcamp{" +
"nome='" + nome + '\'' +
", descricao='" + descricao + '\'' +
", dataInicial=" + dataInicial +
", dataFinal=" + dataFinal +
", devsInscritos=" + devsInscritos +
", conteudos=" + conteudos +
'}';
}
}
Melhorias e Atualizações nas Classes
Bootcamp
,Curso
,Mentoria
eDev
Olá!
Realizei algumas melhorias e atualizações nas classes
Bootcamp
,Curso
,Mentoria
eDev
. Abaixo estão as principais modificações realizadas e os testes realizados para garantir que as mudanças funcionam corretamente.Modificações Realizadas
1. Classe
Bootcamp
nome
edescricao
diretamente. Isso torna a criação de umBootcamp
mais intuitiva e garante que todos os atributos obrigatórios sejam fornecidos na criação.toString()
Adicionado: Adicionada uma representação em string doBootcamp
para facilitar a visualização dos dados em logs e prints.setNome
esetDescricao
: Tornamosnome
edescricao
imutáveis para garantir que esses atributos não sejam alterados após a criação doBootcamp
.equals()
ehashCode()
: Atualizados para considerar apenas os atributos imutáveis (nome
edescricao
) para garantir a consistência na comparação e na geração de hash.Código Atualizado: