Este artículo afirma que una clase de datos es un "olor a código". La razón:
Es normal cuando una clase recién creada contiene solo unos pocos campos públicos (y tal vez incluso un puñado de captadores / establecedores). Pero el verdadero poder de los objetos es que pueden contener tipos de comportamiento u operaciones en sus datos.
¿Por qué está mal que un objeto contenga solo datos? Si la responsabilidad principal de la clase es representar datos, ¿no agregaría métodos que operan en los datos que rompan el Principio de Responsabilidad Única ?