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!
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.