Как шаблон ActiveRecord отличается от шаблона Картопостроителя Объекта области или Данных?

Underscore version :

function order(unordered)
{
return _.object(_.sortBy(_.pairs(unordered),function(o){return o[0]}));
}

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

_.sortBy(_.pairs(c),function(o){return o[0]})

9
задан Joe Van Dyk 18 September 2008 в 15:59
поделиться

2 ответа

Основное различие между этими двумя шаблонами - это:

  • В ActiveRecord у Вас есть один объект области, который и знает всю бизнес-логику и как сохранить/обновить себя в базе данных, user.getLinkToProfile () и Пользователь:: найдите (1), Пользователь:: сохраните (пользователь)

  • В шаблоне DataMapper у Вас есть один объект области, который содержит всю бизнес-логику, для экс-клена user.getLinkToProfile () (или что-то подобное), но ничего не знает о рассматриваемой базе данных, в дополнение к этому у Вас есть объект картопостроителя, который ответственен за сохранение, обновление, выбор, и т.д. пользовательские объекты от базы данных, которая имела бы UserMapper:: найдите (1), UserMapper.save (пользователь)

DataMapper потенциально более сложен затем ActiveRecord, но намного легче разработать Вашу модель предметной области и базу данных, асинхронную затем с ActiveRecord.

20
ответ дан 4 December 2019 в 09:39
поделиться

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

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

... изящные и простые разделения всегда помогают.

2
ответ дан 4 December 2019 в 09:39
поделиться
Другие вопросы по тегам:

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