L'inserimento di AddCustomerData, GetAllCustomers e GetCustomerByID in una classe viola l'SRP?

0

Sono un po 'confuso se posso mettere tutte le seguenti funzioni in una classe o se dovrei dividere in più classi. Penso che GetCustomerByID e AddCustomerData abbiano responsibilità diverse ma d'altra parte penso che sia la stessa responsabilità. Per favore aiutami chiarendo il concetto che cos'è SRP nel seguente codice.

public class CustomerHelper
{
    NorthwindEntities db = new NorthwindEntities();

    public List<Customer> GetAllCustomers()
    {
        return db.Customers.ToList();
    }

    public Customer GetCustomerByID(string customerid)
    {
        return db.Customers.Find(customerid);
    }

    public int AddCustomerData(Customer customer)
    {  
        db.Customers.InsertOnSubmit(customer);
        db.SubmitChanges();
        return customer.CustID;
    }
}
    
posta Tauqeer 15.08.2017 - 11:26
fonte

1 risposta

5

Sì, le funzioni GetAllCustomers , GetCustomerByID e AddCustomerData possono coesistere in una classe senza violare il Principio di Responsabilità Unica.

Ciascuna di queste funzioni fa qualcosa che è correlato alla memorizzazione persistente di oggetti Customer , recuperando tali oggetti o memorizzandoli.
La singola responsabilità della classe CustomerHelper è "la memoria persistente degli oggetti cliente".

Come nota a margine, un nome più convenzionale per CustomerHelper sarebbe stato CustomerRepository .

    
risposta data 15.08.2017 - 13:05
fonte

Leggi altre domande sui tag