Este artigo afirma que uma classe de dados é um "cheiro de código". O motivo:
É normal quando uma classe recém-criada contém apenas alguns campos públicos (e talvez até um punhado de getters / setters). Mas o verdadeiro poder dos objetos é que eles podem conter tipos de comportamento ou operações em seus dados.
Por que é errado um objeto conter apenas dados? Se a principal responsabilidade da classe é representar dados, não adicionaria métodos que operam com os dados violem o Princípio de Responsabilidade Única ?