Alguém poderia me explicar melhor a essência da programação defensiva... Entendi que, basicamente, você cria um novo objeto para evitar que alguém realize alterações sobre ele, mas não captei a essência de tomar essa atitude. Agradeço!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Alguém poderia me explicar melhor a essência da programação defensiva... Entendi que, basicamente, você cria um novo objeto para evitar que alguém realize alterações sobre ele, mas não captei a essência de tomar essa atitude. Agradeço!
Fala ai Raul, tudo bem? A ideia seria isolar a responsabilidade para que apenas a classe dona da informação possa realizar alteração nos seus dados, dessa forma, a gente cria um encapsulamento na mesma.
Ou seja, a regra de alteração fica encapsulada na classe e ninguém de fora pode alterar os valores à não ser utilizando métodos da própria classe.
A essência seria seguir boas práticas sobre design de códigos e orientação à objetos.
Espero ter ajudado.
Sim, mas e como eu vou saber como fazer essa programação defensiva? Ou é simplesmente criar uma nova propriedade com o mesmo valor dá propriedade atual, para que o que a gente consiga alterar sempre seja uma cópia?
Exemplo, se eu tinha uma lista, eu crio uma nova lista com o mesmo valor. Se eu tenho um objeto no atributo, eu chamo no getter um novo objeto com o mesmo valor, etc.
Fala Raul, isso você vai aprendendo e pegando com o tempo, com experiência, vivência e estudos.
Essa seria umas das N possíveis abordagens de programação defensiva.
Espero ter ajudado.