Re[6]: Несколько вопросов по Меппарам.
От: Аноним  
Дата: 03.05.05 19:58
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, <Аноним>, Вы писали:


А>>Тогда по отдельности, как сделать кошерно и как сделать правильно?


IT>Моё ИМХО — правильно по возможности не порождать внешних по отношению к объекту связи. Например, имеется объект Company. Он инкапсулирует только то, что касается самого объекта: вычисления для которых достаточно данных самого объекта, навигацию по дочерним объектам, базовую валидацию и т.п. Если для выполнения какой-либо операции, типа CalcCreditRisk, требуется вовлечение внешних по отношению к объекту данных или использование других объектов, то такая операция должна выполняться другим объектам. Неважно как он называется, manager, service, controller, whatever. Т.е. в данном конкретном случае мы должны получить что-то типа:


IT>
IT>public class Company
IT>{
IT>    ...
IT>}

IT>public class CompanyManager
IT>{
IT>    public Company GetCompanyByID(int id)
IT>    {
IT>    }

IT>    public void AddCompany(Company company)
IT>    {
IT>    }

IT>    public void UpdateCompany(Company company)
IT>    {
IT>    }

IT>    public void DeleteCompany(Company company)
IT>    {
IT>    }

IT>    public CreditRiskResult CalcCreditRisk(Company company, ...)
IT>    {
IT>    }
IT>}
IT>

IT>Весь маппинг выполняется в соответствующих методах менеджера, в идеале в специальном слое — DAL.


Понятно, только по-поводу функции CalcCreditRisk хотелось бы прояснить, такой подход правильный если весь процесс расчёта происодит в БД, а как ето будет выглядеть если расчёт производит обработку информации полученной с БД, т.е ета функция имеет свою логику, ето значит она должна находится не в ДАЛ слое, ибо ДАЛ слой может содержать только логику доступа к БД.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.