Professor, sei que muitas regras/ideias de organização do código são constrastantes e depende muito da situação o uso. Mas esse foi o mais difícil de conseguir usar pra mim.
Uma das lições que aprendi aqui na Alura é a respeito de programação defensiva, não deixar brechas pro código dar erro, pra alguém fazer algo indevido.
Quero dizer deixas as propriedades de uma classe public me parece ter muita chance de gerar erros. Se eu não usar setter's, terei de deixar as propriedades da classe como public, e setar diretamente nelas o valor, de forma que uma propriedade que deveria ser string alguém pode vir a setar um int de forma arbitrária. O método setter elimina essa possibilidade informando que aquela propriedade só aceita determinado tipo de valor.
É horrível uma classe cheio de getter e setter, mas isso garante a segurança das propriedades, não? Gostaria de uma opinião, no dia a dia vc costuma a implementar essa regra? Ou é mais pra casos específicos como o do vídeo?