Я использую tkinter, но мой вопрос, вероятно, общий.
Я впервые проектирую GUI.Каждый из моих объектов моделируется как класс.Я не понимаю, как связать иерархию классов GUI с остальной иерархией классов.
Например, у меня есть существа:
# this is before I had any GUI in my code
class Creature:
def current_position() # returns real-time x, y coords
# ...
Я хочу отобразить их в виде кружков,передвигаться по холсту.Мне показалось разумным, что графическое представление движения должно обеспечиваться методом update_display
в class Creature
.Однако это означает, что class Creature
должен знать подробности о GUI.Кроме того, class App(tkinter.Tk)
с методом redraw
потребуется знать список всех существующих экземпляров Creature
, чтобы вызвать их методы update_display
.Это слишком большая зависимость.
Какой правильный подход?