Sirius3 hat geschrieben: Samstag 25. Mai 2019, 21:33
@PyByte: eigentlich will man eine zu enge Kopplung zwischen zwei Klassen vermeiden.
Kannst Du Dein eigentliches Problem genauer erklären, damit wir eine wirkliche Lösung erarbeiten können?
Ich versuche einen zellularen Automaten zu entwickeln das modular aufgebaut ist. Dabei gibt es folgende Klassen:
Automaton: Klasse Definiert die Struktur des Automaten und enthält die Methoden wie man auf die einzelnen Zellen des Automaten zugreift. Enthält Methoden wie get_cell(coordinate)
Logic Klasse: Enthält die Logik wie die Zellen bei jeder Aktualisierung des Automaten verändert werden. Diese Klasse muss Methoden wie get_cell(coordinate) in Automaton nutzen.
View Klasse: Die Klasse kümmert sich um die grafische Darstellung des zellularen Automaten, dafür bekommt es von Automaton immer wieder die aktuelle Matrix des Automaten.
Durch diesen Aufbau kann ich verschiedene Logik Klassen entwickeln und kann auch verschiedene View Klassen haben. Aktuell erfolgt die Darstellung über pygame, möglicht wäre beispielsweise über Tkinter oder PyQT.
Mir fehlt leider die Erfahrung. Wie würde denn eine saubere Lösung aussehen damit ich von Logic aus Methoden in Automaton aufrufen kann?
Die Logik soll halt in einer separaten Klasse laufen aber von da aus muss ich ja irgendwie auf den Automaten und seine Zell Zustände zugreifen können um mein Algorithmus anzuwenden.