activerecord как модель, действительно ли это - хорошая идея?

Я считаю, что вам нужно использовать

  socket.on("disconnect",function(){
  //delete all user data here
  })

, чтобы он прекратил использовать созданные вами объекты

7
задан Jeffrey04 11 September 2008 в 13:40
поделиться

2 ответа

Martin Fowler описал этот шаблон в Шаблонах Архитектуры приложений для предприятия вместе с двумя другими шаблонами или архитектурой. Эти шаблоны хороши для различных ситуаций и различных сумм сложности.

, Если Вы хотите к поэтому только простому материалу, можно использовать Сценарий Транзакции. Это - архитектура, которую Вы видели в партии старых страниц ASP и PHP, где единственный сценарий содержал бизнес-логику, логику доступа к данным и логику представления. Это разваливается быстро, когда вещи становятся более сложными.

следующая вещь, которую можно сделать, добавляет некоторое разделение между представлением и моделью. Это - activerecord. Модель все еще связывается с базой данных, но у Вас есть немного больше гибкости, потому что можно снова использовать model/dataccess между views/pages/whatever. Это не столь гибко, как это могло быть всего лишь в зависимости от Вашего решения доступа к данным, это может быть достаточно гибко. Платформы как CSLA в.Net имеют много аспектов от этого шаблона (я думаю, что Платформа Объекта смотрит немного совсем как это также). Это может все еще обработать большую сложность, не становясь неудобным в сопровождении.

следующий шаг разделяет Ваш уровень доступа к данным и Вашу модель. Это обычно требует пользы ИЛИ картопостроителя или большой работы. Так не все хотят пойти этим путем. Партия методологий как домен управляемый дизайн предписывает этот подход.

, Таким образом, это - весь вопрос контекста. Что делает Вам нужно и что является лучшим решением. Я даже все еще иногда использую сценарий транзакции для простого единственного кода использования.

8
ответ дан 6 December 2019 в 23:16
поделиться

Большая вещь об использовании направляющих, которые ActiveRecord как модель в MVC - то, что это дает Вам автоматический ORM (Объектный Реляционный Картопостроитель) и простой способ создать ассоциации между моделями. Как Вы указали, MVC может иногда недоставать.

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

1
ответ дан 6 December 2019 в 23:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: