Implementazione di un livello di servizio con MVC4 rispettando la responsabilità unica

0

Sto provando ad apprendere alcune best practice mentre mi occupo di MVC4. Ho una soluzione con tre progetti:

  1. Web: materiale MVC
  2. Core: modello dati
  3. Test: test delle classi

Ora sto cercando di aggiungere:

  1. Servizi: business logic

Ciò richiederà logiche come "GetFilteredItems ()" dai miei controller e le inseriremo in un progetto di servizio, che dipende da Core e da quale Web dipende. Nulla a che vedere con le richieste HTTP. Mentre sto iniziando a fare questo, voglio onorare la singola responsabilità e creare una classe per metodo. Le mie domande:

1) È un buon approccio?

2) Dire che ho bisogno di un metodo GetFilteredItems che accetta un ID e restituisce un elenco. Qual è la convenzione qui in termini di denominazione di classi e metodi? Non posso avere una classe SampleClass con un metodo SampleClass () che restituisce qualcosa, giusto?

    
posta RobVious 17.02.2013 - 21:42
fonte

1 risposta

1

Penso che un approccio migliore sarebbe quello di creare una classe di servizio per ogni entità del modello di dati. Ciò ridurrà l'accoppiamento che si verificherà se hai creato una classe per metodo di servizio. L'utilizzo del modello a responsabilità unica comporterebbe diverse classi con nomi come: SortUserByFirstName, SortUserByLastName, SortUserByPhoneNumber, ecc. Delegare tale responsabilità a una singola classe come: UserService e avere metodi come sortByFirstName, sortByLastName, ecc.

Per dare un esempio di cosa potrebbe accadere, dì che tu cambi la tua entità di dati chiamata User a SuperUser. Ora dovresti passare attraverso ogni singola classe di responsabilità e cambiare il nome della classe. Usando il modello più coeso che ho suggerito, si modifica solo il nome della classe di servizio.

    
risposta data 17.02.2013 - 23:13
fonte

Leggi altre domande sui tag