МОДЕЛЬ С АКТИВНОЙ ЗАПИСЬЮ
Контроллеры обрабатывают прикладной ввод, а представления — прикладной вывод, обе эти задачи являются относительно простыми и четкими. Каркасы лучше всего подходят для помощи в быстром объединении этих задач. Но каркасы слабо поддерживают решение «одно-для-всех» в отношении моделей, поскольку модели содержат остальную часть объектно-ориентированного проектирования вашего приложения. Для удобной работы вашей локальной сети вам потребуется качественный роутер, почитать как правильно http://tvoirouter.ru/ можете тут.
Это тот случай, когда вы должны серьезно подумать о том, какие объекты находятся в вашем приложении и какие данных и поведение эти объекты имеют. Помните о том, что Роберт Л. Гласе оценил, что большая часть раз¬работки программного обеспечения является интеллектуальным и творче¬ским процессом?
Управление моделью
К счастью, в поле объектно-ориентированного проектирования существует много мудрости, которая может вести вас. Книга Крейга Лармана (Craig Larman) «Applying UML and Patterns* [12], к примеру, описывает рекомен¬дации, называемые GRASP (General Responsibility Assignment Software Patterns, общие шаблоны распределения обязанностей). Некоторые из этих рекоменда¬ций специально предназначены для отделения моделей от их объектов до¬ступа к данным:
Информационный эксперт (Information Expert)
Объект, ответственный за операцию, должен иметь все необходимые дан¬ные, чтобы выполнить эту операцию. Если некоторые операции в вашем приложении содержат множественные таблицы (или не содержат их вооб¬ще), а Активная запись способна работать только с одной таблицей за раз, то вы нуждаетесь в другом классе, который объединит несколько объектов доступа к базе данных вместе и использует их для составной операции.
Связь между моделью и объектом DAO, как и Активная запись, должна быть HAS-A (агрегирование), а не IS-A (наследование). Многие каркасы, полагающиеся на Активную запись, предлагают IS-A-решение. Если ваша модель использует объекты DAO, вместо наследования от класса DAO, вы можете проектировать модель так, чтобы она содержала все данные и код домена, который предположительно моделируется, — даже если для пред¬ставления этого понадобится множество таблиц базы данных.
Опубликовал vovan666
October 24 2013 19:02:28 ·
0 Комментариев ·
2768 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.