##Title = Модель ##Order = 0 ##Text

Говорят, что заголовки (прототипы) функций ядра составляют прикладной программный интерфейс (Application Program Interface, API) ядра, а сами тела функций - реализацию этого интерфейса. Модель при этом определяет содержание системы.

Выделение низкоуровневых функций в отдельную абстракцию позволяет легко менять реализацию прикладного интерфейса в будущем, не модифицируя при этом остальных участков кода. Например, мы можем переделать гостевую книгу так, чтобы она использовала базу данных, а не файл. Для этого достаточно изменить всего лишь 2 функции: LoadBook() и SaveBook() (т.е. заменить реализацию API на другую). Ни Контроллер, ни, тем более, Шаблон это не затронет.

Вывод: элемент Модель (Model) позволяет прикладному коду Контроллера удобно работать с базой данных системы (в нашем случае - загружать содержимое гостевой книги с диска и сохранять его в файл). Чаще всего Модель реализуется в виде библиотеки функций (или же библиотеки классов, если используется объектно-ориентированный подход).