Я работаю над настольным графическим интерфейсом (Qt + Python), которое обрабатывает счета-фактуры. До сих пор у меня было 2 вида объектов:Какой шаблон выбрать?
ORM классы, которые описывают счета-фактуры, продукты, клиенты, то есть модели.
Виды, которые позволяют просматривать \ редактировать модели.
Каждая модель может иметь несколько видов.
И я получил эти виды кода:
- код, который инициализирует модель («При создании нового счета-фактуры, дата счетов-фактуры должна быть сегодня»)
- кода, который реагирует на изменения пользователя в вид («Когда клиент выбран, установите соответствующий уровень цен и пересчитать все цены и суммы»)
- кода, который делает очевидную проверку на лета («дата счета не может быть пустым ! продукт должен быть выбран ! ")
- Код, подтверждающий выставление счета-фактуры в соответствии с бизнес-правилами («Продукт нет на складе», «Сумма продажи превышает кредит клиента»).
Итак, вопрос в том, какой шаблон дизайна выбрать? Целью было бы избегать дублирования кода и допускать быстрые изменения моделей и представлений. До сих пор я думал о простом подходе к моделированию, причем 1 & 4 принадлежал самой модели. Но 2 & 3 дайте мне паузу. Должен ли я использовать MVC и поставить 2 & 3 в контроллер? Есть предположения? Благодаря!
Спасибо, я прочитал. AFAIU, эта модель предлагает введение второй модели, которой поручено выполнение валидации \ принудительных БР и т. Д., Оставляя первую модель для чтения данных из БД. Может, мне чего-то не хватает, но как это приносит пользу моему сценарию? Дело не в том, что моя функция чтения настолько сложна, что требуется отдельная модель. – AlexVhr
Хорошо, так называется «пересчитанный прайс-лист» только список сущностей из базы данных? Там есть какая-то модель домена, и эта модель домена должна решать, какие объекты нужно обновлять, когда клиент выбрал действие, поступающее с контроллера. –
Model! = Объект базы данных, он может, но чаще он имеет больше сложности. –