Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Динамический процесс создания сущности [RSS Feed]

#1 Март 25, 2020 00:33:14

khashashin
Зарегистрирован: 2020-03-24
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамический процесс создания сущности

Извиняюсь заранее за терминологию, попробую объяснить проблему внятно.

Проект: Менеджер Чемпионата (футбол)
Проблема: Слишком динамичный и большой выбор режимов игры.

Описание: Проблема в том что выбор режимов огромный т.е процесса как именно проходит чемпионат.
Тут присутствует 40 режимов, вот несколько из них:

1 Группа (все против всех)
1 Группа - Лига - все против всех - несколько дней
2 Группы - Полуфинал - Матч за места 3, 1
2 Группы - Полуфинал - Матч для мест 5, 3, 1
2 Группы - Полуфинал - Матч для мест 7, 5, 3, 1
2 Группы - Полуфинал - Все места - Финал
2 Группы - Малый полуфинал - Полуфинал - Все места - Финал
2 Группы - Четвертьфинал - Полуфинал - Матч за 3-е место - Финал

По сути все эти режимы взяты из данного сайта https://www.meinturnierplan.de/ там можно войти как гость и пройти процесс создания турнира. Мой “клиент” использует эту платформу, но теперь хочет создать свою платформу.

Я не особо долго в разработке программ и мне сложно найти хорошее решение данной проблемы. Мой коллега по работе посоветовал мне создать что-то типа интерфейсов, но я честно говоря не пойму как именно. Он дал мне вот такой пример:

 class Tournament(object):
    def handle_play(self, team1, team2):
        pass
    modes = {
        'mode_1': Mode1Tournament,
        'mode_2': Mode2Tournament,
    }
class Mode1Tournament(Tournament):
    def handle_play(self, team1, team2):
        pass
        # do something with team1 and team2 according to
        # "tournament rules for mode1". (feel free to find a better name than Mode1)
class Mode2Tournament(Tournament):
    def handle_play(self, team1, team2):
        pass
        # do something with team1 and team2 according to
        # "tournament rules for mode2". (feel free to find a better name than Mode2)
Tournament.modes['mode_1']()

Т.е при помощи
 Tournament.modes['mode_1']() 
создается новый объект, и процесс создания матчей прописан в методе в соответствии с режимом турнира.

И вот моя схема базы данных.



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

Отредактировано khashashin (Март 25, 2020 12:24:07)

Офлайн

#2 Март 25, 2020 12:07:17

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Динамический процесс создания сущности

khashashin
вы забыли самое главное прикрепить к посту
в чем, собственно, вопрос?



Офлайн

#3 Март 25, 2020 21:12:11

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Динамический процесс создания сущности

khashashin
Проблема в том что выбор режимов огромный т.е процесса как именно проходит чемпионат.
khashashin
Я не особо долго в разработке программ и мне сложно найти хорошее решение данной проблемы.
Если режимов много и это мешает то надо найти обобщающие правила построения режимов (параметризовать подходы по количеству участников количеству этапов и т.п.) Правил должно стать существенно меньше.

khashashin
Мой коллега по работе посоветовал мне создать что-то типа интерфейсов, но я честно говоря не пойму как именно
Начинать надо не с выбора схемы базы или выдумывания классов а с написания понятного технического задания.

khashashin
Как написать метод который будет учитывать количество команд и выбранный режим.
У меня не возникло ни малейшего понимания что значит учитывать. Чисто формально метод вам не нужен, поскольку непонятно какому классу он принадлежит и зачем. Те надо делать функцию.

фнукция формально может учесть перечисленное вами если ей это передать:
 def Uchet(n_teams,mode):
   ......

И очевидно что для вас проку с такого формального совета ноль. Поэтому почетче опишите что хотите сделать.



Офлайн

  • Начало
  • » Django
  • » Динамический процесс создания сущности[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version