Я пишу медицинское приложение для выставления счетов и впервые использую MVC (Spring), поэтому изо всех сил пытаюсь найти подход, который кажется правильным. Мысли / комментарии будут оценены.
Мои "доменные" классы
- Доктор
- Пациент
- Претензия
- BusinessLogic
Мой контроллер классов
- ListPatients
- EditPatients
- FindPatients
- SubmitClaim
Мои классы репозитория
- IPatientDao
- IDoctorDao
- IClaimDao
Мое приложение очень «тяжелое правило». Например, врачи не могут удалять пациентов других врачей. Пациенты не могут быть удалены, если им выставили счет за что-то.
Я думаю, что эти правила не должны быть зафиксированы в контроллерах, которые кажутся грязными, особенно если правило нужно было использовать в нескольких контроллерах. Точно так же я чувствую, что мои объекты DAO предназначены только для чтения и записи, а не для проверки. Как следствие, я создал объект BusinessLogic, у которого есть мозги. Поэтому я могу назвать что-то вроде:
businessLogic.deletePatient (пациент, врач); // возвращает истину / ложь и устанавливает сообщение
Здесь проверяется, имеет ли зарегистрированный врач право удалять конкретного пациента.
Мне кажется, это лучший способ держать все в порядке.
Хорошо или плохо? Что было бы лучше?