Python: какой шаблон использовать для добавления функциональности в модели Django - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть несколько моделей в моем Django проекте.Большинство из этих моделей довольно просты, но некоторые из них являются точкой входа в сложные структуры данных.

Например, модель Reservation имеет несколько моделей детализации через отношения внешнего ключа (ReservationHotel, ReservationTransfer, ReservationTour, ReservationRountrip, ReservationService), и каждая из этих деталей имеет внешнюю связь с моделями продуктов (Hotel, Transfer, Tour, Roundtrip, Services).

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

Я хочу, чтобы эти контроллеры реализовали шаблоны проектирования , и я считаю, что правильная для Reservations должнабыть шаблоном Proxy , основанным на его описании в википедии:

Какие проблемы может решить шаблон проектирования Proxy?

Необходимо контролировать доступ к объекту,

Дополнительные функции должны быть предоставлены при доступе к объекту.

Например, при доступе к чувствительным объектам должна быть возможность проверить, имеют ли клиенты необходимые права доступа.

Какое решение описывает шаблон проектирования Proxy?

Определите отдельный объект Proxy, который можно использовать вместо другого объекта (Subject), а

реализует дополнительные функции для управления доступом к этому предмету.

В моем случае я хочу создать прокси для модели Reservation, который будет обрабатывать также информацию для своих внешних ссылок, поэтому модель Reservation сохранит свою инкапсуляцию, но прокси будет управлять всей связанной информациейк Reservartion instance.

Это правильное использование шаблона Proxy ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...