Модели в паттернах MVC/MVP?

Всем привет, пытаюсь разобраться с паттернами MVC и MVP.
Пишу десктопное большое приложение(точнее собираюсь переписывать).
Вроде бы понимаю эти паттерны, но хочу разобраться в одном моменте.
На сколько я понял, модель это объект класса который предоставляет данные и логику для view.

Например работаем с работниками на предприятии:
Есть класс WorkerModel, в котором описан работник и методы для работы с ним.
Но что если мне необходимо вывести список всех работников, и например посчитать сколько уволенных, или еще что то.Я так понимаю мне надо создать новую модель типа WorkerListModel, в котором уже будут методы для работы со списком работников, и например подсчета уволенных, и так далее?

Пишу простым языком, так что не ругайтесь.
  • Вопрос задан
  • 183 просмотра
Пригласить эксперта
Ответы на вопрос 1
Maksclub
@Maksclub
maksfedorov.ru
Но что если мне необходимо вывести список всех работников,

Вам поможет такой паттерн, как Repository
Для каждой модели создается некий класс, который инкапсулирует в себя детали как и с помощью чего он это делает (через SQL или из памяти, через ORM или без) и отдает всего лишь коллекции/массивы нужных вам готовых обьектов)

Примерно как-то так:
class WorkerRepository(object):
     def __init__(self, DBSession)

     def get_dismissed_count(self, count)

     def get_all(self)


Пример: jordifierro.com/django-clean-architecture
Тут примеры на Джанго, но на самом деле архитектура приведена из книги Роберта Мартина и относится и архитектуре десктоп-приложений, особенно присмотритесь к тому, как там организованы репозитории
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы