Какова цель Активных Записей?

В Вашем случае (создающий список) на практике нет никакого различия. Но обычно лучше использовать установку (), потому что это поможет Junit сообщить об Исключениях правильно. Если исключение происходит в конструкторе/инициализаторе Теста, который является тестом отказ . Однако, если исключение происходит во время установки, естественно думать о нем как о некоторой проблеме в установке теста, и junit сообщает об этом соответственно.

13
задан zenna 10 September 2009 в 10:24
поделиться

5 ответов

«Active Record Pattern» становится основной частью большинства фреймворков программирования. Это упрощает выполнение более простых задач CRUD (создание, обновление, чтение, удаление). Например, вместо того, чтобы писать много SQL-запросов для вставки, обновления и удаления многих общих и простых объектов данных, он позволяет вам просто назначать значения объекту данных и запускать команду, например, $ object-> save (), SQL - это скомпилирован и выполнен за вас.

Большинство фреймворков также реализуют отношения данных в своих соответствующих моделях Active Record, которые могут значительно упростить доступ к данным, связанным с вашим объектом. Например, в CodeIgniter, если вы указали, что у категории «много» продуктов, то после загрузки объекта категории из базы данных вы можете его перечислить. s дочерние продукты с простой строкой кода.

foreach ($category->products as $product) {
  echo $product->name;
}

Еще одним преимуществом Active Record, как вы говорите, является то, что он позволяет легко переносить ваш код на различные платформы баз данных (при условии, что в используемой вами платформе есть драйвер для вашей выбранная база данных), и хотя сейчас это вряд ли покажется важным, в будущем это будет гораздо важнее, если ваше приложение станет популярным!

Надеюсь, это поможет. Википедия хорошо описывает Active Record ( http://en.wikipedia.org/wiki/Active_record_pattern ) и документация CodeIgniter тоже. Лично я использую KohanaPHP ( http://www.kohanaphp.com ), который является вилкой CodeIgniter только для PHP5, и я считаю, что его модели ORM очень полезны!

что он делает ваш код легко переносимым на разные платформы баз данных (при условии, что в используемой вами платформе есть драйвер для выбранной вами базы данных), и хотя сейчас это вряд ли покажется важным, в будущем это будет иметь большее значение. если ваше приложение станет популярным!

Надеюсь, это поможет. Википедия хорошо описывает Active Record ( http://en.wikipedia.org/wiki/Active_record_pattern ), и документы CodeIgniter тоже будут. Лично я использую KohanaPHP ( http://www.kohanaphp.com ), который является вилкой CodeIgniter только для PHP5, и я считаю, что его модели ORM очень полезны!

что он делает ваш код легко переносимым на разные платформы баз данных (при условии, что в используемой вами платформе есть драйвер для выбранной вами базы данных), и хотя сейчас это вряд ли покажется важным, в будущем это будет иметь большее значение. если ваше приложение станет популярным!

Надеюсь, это поможет. Википедия хорошо описывает Active Record ( http://en.wikipedia.org/wiki/Active_record_pattern ), и документы CodeIgniter тоже будут. Лично я использую KohanaPHP ( http://www.kohanaphp.com ), который является вилкой CodeIgniter только для PHP5, и я считаю, что его модели ORM очень полезны!

Это будет иметь большую ценность в будущем, если ваше приложение станет популярным!

Надеюсь, это поможет. Википедия хорошо описывает Active Record ( http://en.wikipedia.org/wiki/Active_record_pattern ), и документы CodeIgniter тоже будут. Лично я использую KohanaPHP ( http://www.kohanaphp.com ), который является вилкой CodeIgniter только для PHP5, и я считаю, что его модели ORM очень полезны!

Это будет иметь большую ценность в будущем, если ваше приложение станет популярным!

Надеюсь, это поможет. Википедия хорошо описывает Active Record ( http://en.wikipedia.org/wiki/Active_record_pattern ), и документы CodeIgniter тоже будут. Лично я использую KohanaPHP ( http://www.kohanaphp.com ), который является вилкой CodeIgniter только для PHP5, и я считаю, что его модели ORM очень полезны!

8
ответ дан 1 December 2019 в 22:39
поделиться

Active Record - это шаблон проектирования для доступа к данным ...

На данный момент есть два основных шаблона проектирования, с которыми я столкнулся в отношении доступа к данным: ActiveRecord и шаблон репозитория

] Active Record

Ваши объекты содержат методы для сохранения своего состояния в базе данных (или другом механизме сохранения), поэтому:

У вас может быть объект Customer.

Объект Customer будет иметь набор методов, таких как Customer.Save () ;, Customer.Get (int id); и другие.

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

Шаблон репозитория

В шаблоне репозитория вашим клиентским объектом будет POCO или немой объект. У него есть только те методы и свойства, которые действительно необходимы для представления клиента (например, имя, адрес электронной почты, список заказов и т. д.)

Если вы хотите сохранить клиента, вы просто передаете его в свой репозиторий.

Repository.Save (MyCustomer).

Шаблон активной записи работает быстро и легко с. К сожалению, это загромождает вашу модель предметной области этими методами, которые на самом деле не имеют ничего общего с Customer. Это немного усложняет поддержку модели предметной области с течением времени.

Для многих ситуаций очень уместно использовать шаблон активной записи. Например - если я пишу довольно простое приложение, которое, вероятно, не сильно изменится, я бы, вероятно, запустил SubSonic и сгенерировал свой Active Record DAL. Я бы написал свой бизнес-код в течение 20 минут, и обо всем, что касается БД, уже позаботились.

Если, с другой стороны, я моделирую особенно сложную область,

9
ответ дан 1 December 2019 в 22:39
поделиться

Я мог бы высказать свое собственное мнение об этом шаблоне, но лучший охват Active Record (и многих других) - это Шаблоны корпоративного приложения Архитектура Мартина Фаулера.

Из главы 10:

Active Record

Объект, который обертывает строку в таблица или представление базы данных, инкапсулирует доступ к базе данных и добавляет домен логику этих данных.

Объект несет как данные, так и поведение. Большая часть этих данных постоянный и должен храниться в база данных. Active Record использует больше всего очевидный подход, поставив доступ к данным логика в доменном объекте. Сюда все люди умеют читать и писать их данные в базу данных и из нее.

...

Когда это использовать

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

...

Active Record имеет первичный преимущество простоты. Легко построить Active Records, и они Легко понять. Их основные проблема в том, что они работают хорошо, только если объекты Active Record соответствуют непосредственно в таблицы базы данных: изоморфная схема.

Если ваша компания логика сложна, вы скоро захотите используйте прямой отношения, коллекции, наследование и т. д. Это не легко отобразить на Active Record, и добавление их по частям становится очень беспорядочным. Вот что приведет вас к использованию данных Вместо этого Mapper

3
ответ дан 1 December 2019 в 22:39
поделиться

Active Record - это ORM. Вы знакомы с техникой объектно-реляционного сопоставления? Думаю, если вы поймете ORM, вы начнете видеть преимущества.

0
ответ дан 1 December 2019 в 22:39
поделиться

Во всяком случае, это упрощает написание запросов. Я считаю, что нормальный синтаксис MySQL подвержен синтаксическим ошибкам (это не ошибка, а моя собственная), а с синтаксисом активной записи CI такое случается со мной редко.

Active Record - одна из самых крутых функций в CI IMHO

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

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