В Вашем случае (создающий список) на практике нет никакого различия. Но обычно лучше использовать установку (), потому что это поможет Junit сообщить об Исключениях правильно. Если исключение происходит в конструкторе/инициализаторе Теста, который является тестом отказ . Однако, если исключение происходит во время установки, естественно думать о нем как о некоторой проблеме в установке теста, и junit сообщает об этом соответственно.
«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 очень полезны!
Active Record - это шаблон проектирования для доступа к данным ...
На данный момент есть два основных шаблона проектирования, с которыми я столкнулся в отношении доступа к данным: ActiveRecord и шаблон репозитория
] Active Record
Ваши объекты содержат методы для сохранения своего состояния в базе данных (или другом механизме сохранения), поэтому:
У вас может быть объект Customer.
Объект Customer будет иметь набор методов, таких как Customer.Save () ;, Customer.Get (int id); и другие.
Эти методы на самом деле не имеют ничего общего с покупателем в реальном мире. На самом деле они связаны с инфраструктурой вашего приложения.
Шаблон репозитория
В шаблоне репозитория вашим клиентским объектом будет POCO или немой объект. У него есть только те методы и свойства, которые действительно необходимы для представления клиента (например, имя, адрес электронной почты, список заказов и т. д.)
Если вы хотите сохранить клиента, вы просто передаете его в свой репозиторий.
Repository.Save (MyCustomer).
Шаблон активной записи работает быстро и легко с. К сожалению, это загромождает вашу модель предметной области этими методами, которые на самом деле не имеют ничего общего с Customer. Это немного усложняет поддержку модели предметной области с течением времени.
Для многих ситуаций очень уместно использовать шаблон активной записи. Например - если я пишу довольно простое приложение, которое, вероятно, не сильно изменится, я бы, вероятно, запустил SubSonic и сгенерировал свой Active Record DAL. Я бы написал свой бизнес-код в течение 20 минут, и обо всем, что касается БД, уже позаботились.
Если, с другой стороны, я моделирую особенно сложную область,
Я мог бы высказать свое собственное мнение об этом шаблоне, но лучший охват Active Record (и многих других) - это Шаблоны корпоративного приложения Архитектура Мартина Фаулера.
Из главы 10:
Active Record
Объект, который обертывает строку в таблица или представление базы данных, инкапсулирует доступ к базе данных и добавляет домен логику этих данных.
Объект несет как данные, так и поведение. Большая часть этих данных постоянный и должен храниться в база данных. Active Record использует больше всего очевидный подход, поставив доступ к данным логика в доменном объекте. Сюда все люди умеют читать и писать их данные в базу данных и из нее.
...
Когда это использовать
Active Record - хороший выбор для логики предметной области, которая не слишком сложные, такие как создает, читает, обновляет и удаляет. Выводы и проверки на основе одной записи хорошо работают в этой структуре.
...
Active Record имеет первичный преимущество простоты. Легко построить Active Records, и они Легко понять. Их основные проблема в том, что они работают хорошо, только если объекты Active Record соответствуют непосредственно в таблицы базы данных: изоморфная схема.
Если ваша компания логика сложна, вы скоро захотите используйте прямой отношения, коллекции, наследование и т. д. Это не легко отобразить на Active Record, и добавление их по частям становится очень беспорядочным. Вот что приведет вас к использованию данных Вместо этого Mapper
Active Record - это ORM. Вы знакомы с техникой объектно-реляционного сопоставления? Думаю, если вы поймете ORM, вы начнете видеть преимущества.
Во всяком случае, это упрощает написание запросов. Я считаю, что нормальный синтаксис MySQL подвержен синтаксическим ошибкам (это не ошибка, а моя собственная), а с синтаксисом активной записи CI такое случается со мной редко.
Active Record - одна из самых крутых функций в CI IMHO