2010-03-04 2 views
3

Просто быстрый вопрос о передовой практике разработки MVC.codeignign наилучшая практика - несколько моделей

Предположим, что у меня есть два контроллера (cont1, cont2), каждый из которых использует отдельную модель model1 & model2.

все файлы сложны, модели содержат десятки методов.

Скажем, я закончил разработку первого контроллера, и я нахожусь в середине работы над вторым. Мне нужно создать метод в модели 2, который будет точно таким же, как один из методов в модели1. Это всего лишь крошечный метод, например, получить список категорий.

Какой лучший подход к работе - должен ли я дублировать метод и включать его в мою модель2, или я должен получить его из model1?

Разумное, что нужно сделать было бы получить от MODEL1, но я не знаю, если это будет влиять на время выполнения, так как она должна была бы загрузить обе модели ..

Я был бы признателен за некоторые отзывы

благодаря к

ответ

3

Загрузка второй модели не будет иметь заметное влияние на время выполнения. Вероятно, это путь.

Кроме того, каждая модель должна инкапсулировать логику данных для конкретного «объекта». Вы можете думать о каждой модели почти как о таблице базы данных. Таким образом, вы, вероятно, действительно не хотите иметь один и тот же метод в двух разных местах - и если вы это сделаете, вы можете захотеть создать плагин.

1

Возможно, вам действительно нужна третья модель. Если у вас есть метод, который используется во многих/всех ваших моделях, это действительно может быть уникальный набор данных, который будет требовать его собственного внимания. Кроме того, вы не сможете загружать несколько «больших» моделей, а вместо этого иметь 1 большую и 1 крошечную модель.

0

Я столкнулся с той же ситуацией. Я делаю загрузку объекта codeigniter по ссылке в каждой модели. Затем я могу загрузить в свои модели другие модели, библиотеки, помощники и даже элементы конфигурации. Это помогает сохранить код модели вне контроллера, и я считаю это лучшей практикой. Всегда держите его сухим (не повторяйте сами).

Смежные вопросы