Добрый день.
Есть услуги (Services), которые оказывают сотрудники Employees. У каждого сотрудника есть доступ к оказанию этой услуги на основе некоторых документов (скажем, у электриков это допуск, у врачей это сертификат, у продавца это медкнижка). Как спроектировать оказание услуг с проверкой доступа сотрудника? Чтобы не плодить кучу if else? Хочется как то отдельно хранить эти спецификации, чтобы их можно было обновлять. Какой нибудь класс и транзакционный паттерн прореки возможности оказания услуги
Можно ли как-нибудь изспользовать паттерн Спецификация?
Привет! Ну если вопрос касается проектирования, то тут сразу бросается в глаза понятие Service. В предметной области его желательно не использовать, т.к. данный термин очень перегруженный и имеет много понятий в программировании. Я видел в одном проекте его заменили на Product, но ладно не суть...
Паттерн "Спецификация" я думаю тут не особо уместен. Можно сделать так, что каждый Сотрудник содержит в себе поле со списком Документов, и для того чтобы выяснить может ли сотрудник оказывать услугу, то можно примерно так: if (employee.СanProvideService(service)) ...