En el artículo de Alura sobre encapsulación en Java, se destaca la importancia de no solo declarar los atributos como private, sino también de evitar exponerlos directamente mediante getters y setters sin una lógica adicional. Por ejemplo, si permitimos modificar directamente el valorTotal de una clase Pedido a través de un setter, cualquier clase externa podría alterar este valor sin restricciones, lo que puede llevar a inconsistencias si las reglas de negocio cambian.
Para mejorar esto, se sugiere encapsular la lógica de modificación dentro de métodos específicos, como agrega(Item item), que maneja internamente cómo se actualiza el valorTotal, aplicando descuentos u otras reglas según sea necesario. Esto asegura que cualquier cambio en la lógica de negocio se realice en un solo lugar, facilitando el mantenimiento y reduciendo errores.
En resumen, la encapsulación efectiva implica ocultar los detalles internos de una clase y exponer solo lo necesario a través de métodos bien definidos, lo que promueve un código más limpio, seguro y fácil de mantener.