Campos públicos en un objeto de transferencia de datos

En mis años de programación, a menudo he hecho clases que simplemente agrupan algunas variables con sus definidores y captadores. He visto a estos tipos de objetos denominados objetos de valor, objetos de dominio u objetos modelo, según el contexto en el que se utilizan. El término más apropiado para el uso genérico parece ser el objeto de transferencia de datos (DTO). Esto describe un POJO que solo contiene accesores y mutadores.

Acabo de escribir uno de esos objetos que contiene unos cincuenta campos utilizados para establecer parámetros de tema en un gráfico. Ahora me pregunto si, en lugar de generar cien captadores y configuradores, debería declarar estos campos como públicos. Hacerlo va en contra de todo lo que mis instintos de programación me dicen, pero no puedo negar que aumentaría enormemente la legibilidad de mi código y reduciría la cantidad de código en la clase.

La única razón por la que puedo verno utilizar campos públicos sería si tuviera que realizar algún tipo de validación en estos campos. Si asumimos que la validación de tipo es suficiente para mis propósitos, ¿el uso de campos públicos en este escenario es una interrupción aceptable del diseño orientado a objetos? ¿Funcionará mejor un DTO público en operaciones de lotes grandes?

Respuestas a la pregunta(2)

Su respuesta a la pregunta