Ich habe eine Frage zum "Design" eines Programms. Ich schreibe momentan ein umfangreiches Backup- und Synchronisierungsprogramm mit Python. Die erste Funktionsfähige Version wird so um die 500-1000 Zeilen Code haben (momentan noch 200). Jetzt frage ich mich ob es Sinn macht, die einzelnen Klassen in separate Dateien unterzubringen, oder alles in eine Datei schreibe (siehe Abbildungen). Abgebildet sind nur ein Teil der Klassen, es sind im Moment 8, vor allem die Klasse "db" wird oft gebraucht, da sie die Daten der verschiedenen Festplatten verwaltet.
Prinzip 1, Alles in einer Datei:
+ keine komplizierten Verschachtelungen.
- je größer das Programm um so schwieriger ist der Code zu lesen.
"UML":
Groß
Prinzip 2, Alles in separate Dateien (dezentral):
Die einzelnen Klassen(settings) includieren die benötigten Klassen(db) und geben das Endergebnis an die Klasse Interactive zurück.
+ einfach
+ kleinere (überschaubare) Dateien
- evtl. wird es unübersichtlich
Code zum includieren:
Code: Alles auswählen
class settings:
def add(self):
import settings
settings.settings().add()
Groß
Prinzip 3, Alles in separate Dateien (zentral):
Die einzelnen Klassen(settings) fordern die benötigten Informationen (zum Beispiel aus der db) von der Hauptklasse(interactive), diese includiert die benötigte Klasse(db) und ermittelt die benötigten Informationen. Diese werden anschließend an die ursprüngliche Klasse(settings) weitergegeben.
+ Man muss nur die Hauptdatei bearbeiten, um den Informationsfluss zu verändern.
+ kleinere (überschaubare) Dateien
- sehr kompliziert
- es wird eine extra Klasse für die Verwaltung der Anfragen benötigt
"UML":
Groß
Momentan favorisiere ich Prinzip 2, allerdings weiß ich nicht wie komplex das Programm werden wird, da es mein erstes Programm dieser Größe ist. Nun meine Frage an euch, welchen Ansatz haltet ihr (Designtechnisch) für die beste/eleganteste bzw am besten nachvollziehbare Lösung. Der Code sollte ja schließlich nicht nur von mir verstanden werden können .
maces
PS: Wenn ihr mehr Informationen benötigt, sagt bescheid.