Найти - Пользователи
Полная версия: Динамический процесс создания сущности
Начало » Django » Динамический процесс создания сущности
1
khashashin
Извиняюсь заранее за терминологию, попробую объяснить проблему внятно.

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

Описание: Проблема в том что выбор режимов огромный т.е процесса как именно проходит чемпионат.
Тут присутствует 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']() 
создается новый объект, и процесс создания матчей прописан в методе в соответствии с режимом турнира.

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



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

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

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

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

И очевидно что для вас проку с такого формального совета ноль. Поэтому почетче опишите что хотите сделать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB