dovrei creare una nuova classe per una specifica logica aziendale?

0

Ho una classe di richiesta basata sulla stessa entità nel mio dominio. Attualmente ha solo definizioni di proprietà. Vorrei aggiungere un metodo per verificare una richiesta duplicata che chiamerò dal mio controller. Dovrei aggiungere un metodo chiamato CheckDuplicate nella classe Request? Potrei violare l'SRP? Il metodo dovrà accedere a un contesto di database per verificare le richieste già esistenti. Sto pensando di creare un'altra classe per questa logica che accetta un datacontext come parte del suo costruttore. Ma creare una nuova classe per un solo metodo sembra anche uno spreco. Qualche consiglio?

    
posta Riz 28.06.2013 - 19:05
fonte

2 risposte

2

Potrei andare avanti e crearlo.

Come hai detto, aggiungere una nuova responsabilità a ciò che attualmente è un DTO violerebbe l'SRP. La domanda sorge spontanea, cosa succede quando arriva il prossimo requisito? Vuoi aggiungere un altro metodo? Cosa succede quando aggiungi un nuovo attributo al DTO? Questa modifica necessaria aggiungerebbe il rischio di incasinare la tua logica di verifica dei duplicati? Parte dell'idea dell'SRP è che ci dovrebbe essere solo un motivo per modificare la tua classe.

Inoltre, un DuplicateChecker può rivelarsi utile per altre classi di dominio mentre vai avanti.

Non è che le classi siano particolarmente costose.

    
risposta data 28.06.2013 - 20:56
fonte
0

Come da domanda, devi solo convalidare se la voce è un duplicato? Se questo è come la convalida, puoi andare avanti e creare un metodo isValid () o isDuplicate () che restituirebbe un valore booleano sul controllo delle convalide che hai.

    
risposta data 28.06.2013 - 19:19
fonte

Leggi altre domande sui tag