Подтвердить что ты не робот

Является ли Backbone.js действительно MVC?

backbone.js упоминается как структура MVC для Javascript. Но это?

Вот описание модели, от http://documentcloud.github.com/backbone/

Модели являются основой любого приложения JavaScript, содержащего интерактивные данные, а также большую часть логики, окружающих его: преобразования, проверки, вычисленные свойства и контроль доступа. Вы Расширьте Backbone.Model с помощью ваших методов, специфичных для домена, и Model предоставляет базовый набор функций для управления изменениями.

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

Это понимание согласуется с различными определениями, которые я нахожу в Интернете, IE http://en.wikipedia.org/wiki/Model_view_controller:

Model-View-Controller (MVC) - это шаблон проектирования для пользователя компьютера интерфейсы, которые делят приложение на три области ответственность:

Модель: объекты домена или структуры данных, которые представляют состояние приложения.

Итак, мой вопрос: является ли backbone.js действительно MVC-каркасом в каком-либо смысле, или это скорее всего общий способ помочь вам склеить все вместе?

Кстати, определение модели из часто задаваемых вопросов backbone.js отличается от того, которое я цитировал выше (также из backbone.js http://documentcloud.github.com/backbone/#FAQ-mvc:

Backbone.Model. Как модель Rails минус методы класса. Обтекает ряд данных в бизнес-логике.

Итак, в каком смысле backbone.js действительно MVC или нет?

(Предостережение: сейчас я просто оцениваю backbone.js.)

4b9b3361

Ответ 1

Немного запутать, когда вы пытаетесь найти " M" (Модель) V "( Просмотр) и C" ( Контроллер).

Таким образом, мы всегда можем спорить о терминах, но что важно для них.

Пересекая " Условия" с помощью Intend ":

"М":

Магистральные Модели. Коллекции привязаны к Модели.

"V":

По умолчанию шаблон Underscore.js представляет собой представление Intention "стандартного MVC

"C":

Магистральный Вид - это Контроллер. Его называют Просмотр в магистрали (как и во многих других, таких как Django), поскольку он обрабатывает рендеринг. С точки зрения MVC - это контроллер. Маршруты связаны с Представлениями

Теперь, иногда просто для того, чтобы удовлетворить сокращение MVC, некоторые называют его " Коллекции просмотра моделей". Но об этом не следует говорить.

Ответ 2

Магистраль является одним из тех MV * (MV-star). Нет контроллера, потому что логика, управляющая приложением, находится в представлении (например, как M (V + C)).

И нет единого определения для "Модели", поскольку оно используется по-разному в разных рамках на разных языках. Но, как правило, модели представляют собой просто абстракцию хранения данных и, возможно, имеют немного логики, такие как проверка правильности, форматирование и изменение состояния.

Ответ 3

Я думаю, вы повесились на имена. Не каждая структура MVC придерживается одного и того же соглашения об именах. Например, в Django контроллеры называются "Представления", а "Виды" называются "Шаблоны". Магистраль следует аналогичному шаблону именования. Примечание. Массив очень гибкий в части представлений, не применяя какую-либо конкретную библиотеку шаблонов.

Как уже отмечалось, логика, включенная в модели Backbone, является логикой, которая вызывает озабоченность модели. Стандартная реляционная база данных, представляющая собой набор моделей (таблиц), обычно заботится о типе данных в столбцах.

Логика, которая обычно входит в ваши контроллеры (Backbone "Views" ), будет такой, как обработка временных данных сеанса, проверка состояния пользователя (например, аутентификация, хотя вы бы этого не делали в js), привязка представлений к моделям (Эталон делает именно это, управляя тем, где и когда модели хранятся/создаются на основе действий пользователя и шаблонов привязки для обновления изменений модели).

Итак, в заключение, Backbone действительно хорошо подходит для MVC, намного лучше, чем для большинства серверных "MVC" фреймворков, которые обычно представляют собой "PAC" (Presentation-Abstraction-Control).

Ответ 4

Виды обоих. Если вы смотрите на строгий смысл модели; то есть, что модель - это просто данные, то нет. Но проверки, преобразования и т.д. Были размещены там, потому что Backbone довольно ориентирован на модель. По собственному опыту, я обычно рассматриваю модели Backbone в традиционном смысле в том, что модель представляет собой приложение-представление хранилища данных бэкэнда, и все, что у него есть, - это методы доступа для управления этими данными.

Дело в том, что хотя существуют возможности для проверки или выполнения контроля доступа и т.д., вы можете выбрать более классический шаблон MVC. Это полностью зависит от вас. То, что мне нравится в Backbone, это то, что он дает вам MVC-движок, на котором вы строите всю архитектуру приложения. Если вы хотите следовать классическому шаблону проектирования MVC, вы можете это сделать. Ура!

Ответ 5

в backbone.JS MVC означает КОЛЛЕКЦИЯ МОДЕЛИ VIEW...