uhuC
[Programmierung] Objektorientierung und Import von Klassen in einer Bibliothek - Druckversion

+- uhuC (https://uhuc.de)
+-- Forum: uhuc Classic (https://uhuc.de/forum-43.html)
+--- Forum: Hilfeforum (https://uhuc.de/forum-5.html)
+--- Thema: [Programmierung] Objektorientierung und Import von Klassen in einer Bibliothek (/thread-756.html)



[Programmierung] Objektorientierung und Import von Klassen in einer Bibliothek - CyD - 29.12.2016

Hallo allerseits!

Ich stoße momentan auf ein Problem, welches ich trotz Recherche noch nicht lösen konnte. Im MVST liegen momentan alle Klassen in einer Datei, diese möchte ich jetzt auf mehrere Dateien aufteilen. Die Klassen referenzieren aber auch untereinander auf sich selbst und somit ist es schwierig diese einfach auszugliedern, ohne eine Abhängigkeitshölle entstehen zu lassen. 

Konkret geht es um die Klassen in der Datei mvst-core.py
Mvst ← Kernklasse, welche die relevanten Getter enthält und die anderen Klassen verwaltet.
Archive ← Zuständig für Backups
Daemon ← Erzeugt einen Daemonprozess
Irc ←Handler für den Irc Prozess
Remote ← Verwaltet eine Remote-Sitzung
WrapperCtl ← Handler für den Wrapper Prozess

Alle Klassen bekommen im Konstruktor die Klasse Mvst mitgeliefert, dadurch kann jede Klasse auf die Kernfunktionen zugreifen (zb getLogfile(), getInstance() und qx() wird wohl von allen verwendet). Wenn zB der Wrapper gestartet wird, startet Mvst eine Instance von WrapperCtl, welche eine Daemon Instance startet, welche via qx() start-stop-daemon ausführt. Die Klasse Mvst wird hierbei von WrapperCtl an Daemon weitergegeben. Ist das schon schlecht programmiert?

Alle Getter verändern ihren Wert zur Laufzeit nicht, dh ich könnte auch einfach nen Dict oder Array übergeben. Die qx Funktion (sie führt Shellkommandos aus und gibt deren Exitstatus zurück - zb ob start-stop-daemon ausgeführt werden konnte) benötigt jedoch dann auch die Getter. Was heißen würde ich gebe ein Dict von Mvst an WrapperCtrl welches dieses dann wieder an Mvst.qx() weiter gibt. Ist glaub ich jetzt nicht so ein schöner Stil. 

Unter dem Strich will ich die Klassen in mehrere Dateien aufteilen, ich weiß aber nicht, wie ich das am Besten machen soll, da die Klassen sich teilweise auf alle anderen beziehen.

Falls mir da jemand mit Links oder so weiterhelfen kann, wäre ich sehr Dankbar. Wenn ihr Fragen zur Architektur habt, stellt diese einfach.