В основном из любопытства я ищу структуру или пример Python для шаблона репозитория логики переноса развязки логики домена.Реализация шаблона репозитория в Python?
Название "Repository Pattern" появляется в пост "Untangle Domain and Persistence Logic with Curator" (Ruby), идея исходит от section книги "Domain-Driven Design" и Martin Fowler. Класс модели не содержит логики постоянства, а приложение объявляет подклассы репозитория, экземпляры которых действуют как коллекции памяти экземпляров модели. Каждый репозиторий сохраняет модель по-разному, например, SQL (различные схемы), Riak или другой noSQL и в память (для кэширования). Соглашения о структуре означают, что подклассы репозитория обычно требуют минимального кода: просто объявление подкласса «WidgetRepository» SQLRepository предоставит коллекцию, которая сохраняет модельный виджет в таблице БД с именем «виджеты» и сопоставляет столбцы с атрибутами виджета.
Отличия от других моделей:
Active Record Pattern: например, Django ORM. Приложение определяет только класс модели с логикой домена и некоторыми метаданными для сохранения. ORM добавляет логику сохранения в класс модели. Это смешивает домен и постоянство в одном классе (нежелательно в соответствии с поста).
Благодаря @marcin, я вижу, что когда Active Record поддерживает различные функции backend и .save (using = "other_database"), это дает многогранное преимущество шаблона репозитория.
Так что в некотором смысле шаблон хранилища похож на активную запись с логикой сохранения, перемещенной в отдельный класс.
Data Mapper Pattern: например, классические сопоставления SQLAlchemy. Приложение определяет дополнительные классы для таблицы (ов) базы данных и сопоставления данных из модели в таблицу (таблицы). Таким образом, экземпляр модели может быть сопоставлен с таблицами несколькими способами, например. для поддержки устаревших схем. Не думайте, что SQLAlchemy предоставляет mappers для хранения, отличного от SQL.
Что предлагают ваши исследования? Я просто легко искал несколько альтернатив. – Marcin
Шаблон репозитория '' python 'для google для 'python' не выводит никаких реализаций. Что именно вы искали? – Graham
http://www.google.co.uk/search?q=django+orm+backend – Marcin