В последнее время в сообществе Zend Framework (ZF) выросло количество постов посвященных обсуждению Модели в шаблоне Модель-Вид-Контроллер. В ZF нет конкретного класса или интерфейса Модели; авторы фреймворка придерживаются позиции, что модели для каждого приложения специфичны и только разработчик может точно определить наиболее подходящий вариант.
Многие другие фреймворки привязывают Модель к шаблонам доступа к данным - как правило: ActiveRecord или Table Data Gateway, не обращая внимания на тот факт, что Модель привязывается к способу сохранения данных.
А что произойдет, если Вы начнете использовать Memcached? или перейдете на архитектуру SOA? Что, если с самого начала Ваши данные поступают из веб-сервиса? Что делать, если вы используете базу данных, но бизнес-логика опирается на связи между таблицами?
Замечательные публикации, которые упомянуты выше, обсуждают различные подходы (используемые при создании модели), но не обязательно указывают на какие-либо конкретные подходы, которые разработчик может использовать при создании своих моделей. Таким образом, это будет первый пост из серии публикаций о некоторых конкретных методах, которые можно использовать при создании моделей. Подходы будут опираться на компоненты ZF, но могут быть использованы и для ряда других фреймворков.