Классы модель стоят отдельно как хорошая, чистая, высококачественная модель реальных объектов. Если это бизнес-сфера, это могут быть клиенты, планы, продукты, платежи и все такое. Ваше приложение работает с этими классами. Идея заключается в том, что ваше приложение представляет собой модель реальной обработки доменных объектов. Ваше приложение может иметь функции методов, которые выглядят как глаголы, которые действительно делают люди, а реализация этих функций методов выглядит как описание реальных объектов в реальном мире.
Важно: Это (в идеале) не зависит от большинства технических соображений. Это самая чистая модель доменных объектов, которую вы можете определить. [Да, у вас есть проблемы с поиском внешнего ключа, и да, вам нужно сообщить объектам вашей модели о некоторых компонентах доступа к данным, чтобы объект модели мог находить объекты друг друга только по внешним ключам вместо реального объекта. Хороший слой ORM решает эту проблему для вас.]
Модель, полная SQL, не очень хорошая модель. Реальный мир тоже не полон SQL. Счет-фактура - это документ с некоторыми именами, адресами и товарами, датой отгрузки и множеством подобных вещей.
Классы access обрабатывают постоянное хранилище. Обычно это включает отображение объектов вашей модели в таблицы реляционной базы данных. Уровень доступа к данным, ориентированный на SQL, реконструирует вашу модель из реляционной базы данных и сохранит вашу модель в реляционной базе данных. Уровень доступа к данным YAML будет считывать и записывать файлы YAML из вашей модели.
Иногда шаблон проектирования объектно-реляционного отображения (ORM) используется для четкого разделения мира SQL и вашей модели. Иногда объект доступа к данным (DAO) обрабатывает это разделение между SQL и моделью. Объект ORM или DAO может быть заполнен SQL.
Действительно, когда вы меняете продукты баз данных, только изменение происходит в DAO или ORM. Модель никогда не меняется, потому что она не зависит от SQL, YAML, JSON, XML или какого-либо другого метода сериализации.
Если ваш DAO создает и сохраняет объекты модели, я думаю, что части модели MVC реализованы достаточно хорошо. Вы можете посмотреть на пакеты ORM, чтобы получить дополнительные представления о современном уровне техники. Я сам фанат iBatis .
Но это только 1/3 всего мировоззрения MVC. И, конечно же, пуристы скажут вам, что MVC - это только настольный компьютер или только небольшой разговор или отличается от обычной веб-реализации MVC.