Java - Classes e objetos imutáveis

Índice
O desenvolvimento de uma aplicação não é apenas escrever um código que resolva um problema, como já foi demonstrado, existem milhares de formas de atacar cada situação que surge em nosso caminho. O orientação do objeto vai além de criar classes e instanciar, é algo que deve ser um estilo e uma filosofia de desenvolvimento.
Para continuar nos aprofundando no que a orientação a objetos representa como filosofia, devemos entender diferentes conceitos, alguns mais simples, outros mais complexos, mas à medida que os adicionarmos ao nosso conhecimento alcançaremos uma compreensão maior de como enfrentar uma aplicação.
Quando criamos um objeto, o normal é que podemos modificar seus atributos no decorrer de sua existência em nossos programas ou aplicativos, porém nem sempre esse comportamento é o que desejamos, seja por motivos técnicos ou porque queremos manter a integridade das instâncias, haverá haverá momentos em que aqueles de nós que desejarão que um objeto seja modificado.
Que são?Para atender a essa necessidade, temos os chamados classes imutáveisEssas classes possuem uma série de atributos privados, que devido à sua visibilidade não podem ser tocados por elementos externos, mas também essas classes não possuem métodos modificadores, portanto, uma vez que o objeto seja estabelecido através do construtor, seus atributos não serão alterados.
Para tornar uma classe imutável, um dos primeiros passos é não ter definir métodos, ou seja, aqueles que atribuem valores aos atributos, vamos ver no código a seguir um pequeno exemplo de como obter uma classe imutável:

Vemos no exemplo como construímos um aula AlunaNesta classe então temos que cumprir todos os requisitos para que seja uma classe imutável, definimos atributos privados, o construtor é o único que atribui valores ao instanciar e temos métodos que nos permitem acessar os valores Dos atributos.
Podemos pensar que isso é muito simples, mas em parte não é, pois apesar de colocar o atributos privados e não ter métodos que os modifiquem é um começo, porém devemos estar atentos a outros elementos que podemos incluir em nossas aulas que podem contrariar o princípio que temos vindo a desenvolver, vejamos o seguinte exemplo:

Vemos que é praticamente a mesma turma do aluno, mas definimos um novo atributo que é “Data Criada”Este atributo tem a função de armazenar a data em que criamos um objeto, mas é do tipo Encontro: DataIsso é um problema para nós, pois sendo deste tipo podemos utilizar um método que altera o valor e associá-lo à referência do atributo, com isso não seria mais uma classe imutável.
Então, temos que cuidar desses detalhes se quisermos usar este recurso na criação de nossos aplicativos e programas.
Aprendemos neste tutorial um novo conceito de orientação a objetos e, além disso, fizemos os exemplos em JavaPodemos aplicar isso a qualquer idioma, claro salvando diferenças técnicas, então trabalharemos com filosofia e não com tecnicalidades.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave