этот класс от http://wiki.fluentnhibernate.org/Getting_started у него есть некоторая логика в нем, и я думаю, что это нарушает Single Responsibility Principle, как вы думаете, как бы вы это разрешили?SOLID SRP и FluentNhibernate юридические лица
Другое дело, что меня беспокоит, почему в nhibernate всегда используется IList, а не IEnumerable, который имеет меньше функциональности?
public class Store
{
public virtual int Id { get; private set; }
public virtual string Name { get; set; }
public virtual IList<Product> Products { get; set; }
public virtual IList<Employee> Staff { get; set; }
public Store()
{
Products = new List<Product>();
Staff = new List<Employee>();
}
public virtual void AddProduct(Product product)
{
product.StoresStockedIn.Add(this);
Products.Add(product);
}
public virtual void AddEmployee(Employee employee)
{
employee.Store = this;
Staff.Add(employee);
}
}
Два вопроса: 1) Как вы считаете, ответственность этого класса должна быть? 2) Какие элементы этого кода, по вашему мнению, выходят за рамки этой ответственности? Он выглядит довольно чистым для меня - этот класс представляет информацию и процессы, связанные с Магазином; там нет кода пользовательского интерфейса, доступа к данным или других сквозных проблем ... –
хорошо, я не был уверен, нарушает ли он SRP, поэтому я задал этот вопрос – Omu
. Каковы две обязанности в соответствии с вами? – Paco