Лучший способ организовать приложения? .... (шаблон проектирования MVC) - PullRequest
2 голосов
/ 07 декабря 2009

При создании приложений, какой лучший способ решить, что и куда идет. Откуда вы знаете, какие функции поставить в какие контроллеры и модели. Например, я создаю приложение, которое основано на местоположении. Пользователи могут публиковать разные вещи, которые, в свою очередь, будут показаны другим пользователям на определенном расстоянии. Кроме того, у каждого пользователя будет своя страница профиля, на которой будет показано все, что опубликовано этим пользователем, независимо от местоположения.

Итак, у меня есть такие модели

class UserModel extends BaseM{
  get_user($uid);
  get_all_users();
  edit_user($new_data);
  delete_user($uid);
  add_user($new_user);
  get_user_articles($uid);
  get_user_reviews($uid);
  get_user_foo($uid);
}

class ArticleModel extends BaseM{
  get_article($aid);
  get_all_articles();
  add_article($new_article);
  delete_article($aid);
}// similar to ReviewModel, and other models

class LocalModel extends BaseM{
  get_local_articles($zip_code, $range);
  get_local_reviews($zip_code, $range);
  get_local_foo($zip_code, $range);
}// holds all location related functions

Как вы можете видеть, я объединил все, что касается пользователя (нужен userID) в userModel, все, что касается местоположения (нужен почтовый индекс) в localModel, а затем все остальное имеет свою собственную модель. *

Мне было интересно, какой лучший способ выяснить, что и куда идет, есть ли эмпирическое правило для такого рода вещей?

Ответы [ 2 ]

1 голос
/ 07 декабря 2009

Ну, ты уже на 80%. У тебя сломались модели, и это большая битва. Затем разработайте приложение, которое вы хотите. Если у вас много повторяющихся «элементов» на нескольких страницах, то каждый элемент должен быть представлением. В противном случае каждая страница должна быть представлением. Или какая-то комбинация двух.

Как только вы определили свои страницы и знаете поток данных приложения, все, что остается, - это контроллер.

В небольшом приложении может быть целесообразно иметь один контроллер. Или для действительно сложных приложений у вас может быть несколько контроллеров - но не более одного на «страницу».

Просто имейте в виду - модель должна быть независимой от просмотра (вы можете переоборудовать интерфейс без влияния на модель) Представления должны быть слепыми к тому, откуда поступают данные или куда они идут - все фильтруется через контроллер.

Смотрите мой предыдущий ответ на похожий вопрос здесь :

0 голосов
/ 07 декабря 2009

Я обычно использую этот подход: попробуйте куда-нибудь поставить. если через некоторое время вы используете его, он чувствует себя неловко, то это не в нужном месте.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...