Il libro di Fowler Refactoring elenca "Classe di dati" come odore di codice. Tuttavia, quando l'unità testa un metodo, passando oggetti valore, ad es. oggetti di trasferimento dati, rendono il test molto più facile che provare a impostare o esaminare lo stato all'interno di una classe.La "classe dati" è davvero un odore di codice?
Mi sembra che la metodologia Test Driven Development si basa sull'idea che test facili da scrivere sono un'indicazione che l'interfaccia è pulita e il metodo è coeso. I metodi puramente idempotenti sono i più facili da testare e il più facile da riutilizzare. Allora, perché una classe di dati è una brutta cosa? La correzione consigliata è spostare il comportamento nella classe dati, ma perché un oggetto valore deve avere un comportamento?
Cosa succede se il mio modello di dominio non è esclusivamente il mio dominio? Con ciò intendo che devo lavorare con entità da un modello di dati aziendali, recuperate da un database. Non dovrebbe una classe di dati che rappresenta l'entità non avere un proprio comportamento, invece delegare tale responsabilità agli oggetti di servizio che sto fornendo? –
La risposta è un po 'lunga, quindi ho modificato la risposta. Btw ottima domanda. – aquaraga