Struktur eines Objekt orientierten Programms
Verfasst: Dienstag 29. April 2008, 10:50
Hey, ich brauche mal ein wenig organisatorische Hilfe bezüglich OOP.
Ich habe angefangen ein Programm zu schreiben und möchte jetzt zusammengehörende Teilbereiche in eigene Klassen zu stecken.
Jedoch habe ich hier ein Problem. Obwohl die jeweiligen Klassen von der Logik her zusammengehören, müssen sie auch mit anderen Klassen (oder halt mit den jeweiligen Instanzen der Klassen) kommunizieren.
Beispiel: Eine Gebäude Klasse muss bei Ressourcen anfragen können, ob ausreichend Rohstoffe bereitstehen und kann bei Erfolg den Gebäudeauftrag bei einer anderen Klasse in Auftrag geben.
Momentan habe ich das so gelöst, dass jeder Instanz die abhängigen Instanzen als Parameter übergeben werden und den Funktionen der Klasse über self.instanz = instanz zur Verfügung stehen. (Aufruf: instanz = Klasse(instanz_foo, instanz_bar)
Ich finde diese Lösung jedoch nicht gelungen, da es passieren kann, dass eine Klasse auf viele andere Klassen zugreifen möchte und dann alle Instanzen als Parameter übergeben werden müssen. Irgendwie ist das nicht sauber.
Habt ihr ne Idee wie ich elegant von jeder Instanz die ich in der Hauptklasse von meinen benötigten Klassen erstellt habe auf die anderen Instanzen zugreifen kann?
Ich denke, dass ich das grundlegende Konzept, beziehungsweise die Basics von OOP verstehe, nur weiß ich nicht wie ich solche Probleme löse. (Jedenfalls soweit verstanden, dass ich das Gefühl habe, das es einen besseren Weg geben muss)
Bin über jede Hilfe und jeden Vorschlag dankbar.
Ich habe angefangen ein Programm zu schreiben und möchte jetzt zusammengehörende Teilbereiche in eigene Klassen zu stecken.
Jedoch habe ich hier ein Problem. Obwohl die jeweiligen Klassen von der Logik her zusammengehören, müssen sie auch mit anderen Klassen (oder halt mit den jeweiligen Instanzen der Klassen) kommunizieren.
Beispiel: Eine Gebäude Klasse muss bei Ressourcen anfragen können, ob ausreichend Rohstoffe bereitstehen und kann bei Erfolg den Gebäudeauftrag bei einer anderen Klasse in Auftrag geben.
Momentan habe ich das so gelöst, dass jeder Instanz die abhängigen Instanzen als Parameter übergeben werden und den Funktionen der Klasse über self.instanz = instanz zur Verfügung stehen. (Aufruf: instanz = Klasse(instanz_foo, instanz_bar)
Ich finde diese Lösung jedoch nicht gelungen, da es passieren kann, dass eine Klasse auf viele andere Klassen zugreifen möchte und dann alle Instanzen als Parameter übergeben werden müssen. Irgendwie ist das nicht sauber.
Habt ihr ne Idee wie ich elegant von jeder Instanz die ich in der Hauptklasse von meinen benötigten Klassen erstellt habe auf die anderen Instanzen zugreifen kann?
Ich denke, dass ich das grundlegende Konzept, beziehungsweise die Basics von OOP verstehe, nur weiß ich nicht wie ich solche Probleme löse. (Jedenfalls soweit verstanden, dass ich das Gefühl habe, das es einen besseren Weg geben muss)
Bin über jede Hilfe und jeden Vorschlag dankbar.