theo hat geschrieben:OK, irgendwie erreicht mir der Funke nicht so richtig.
Die Code-Trennung, so sie denn nicht als Vererbung oder Libraries stattfindet, kann mich auch nicht direkt begeistern.
In mehreren Dateien lesen zu müssen, um eine Funktionalität zu verstehen finde ich nicht unbedingt praktisch.
Aber vielleicht komme ich ja noch auf den Geschmack.
Du hast viel aufgeräumteren Code:
- Du hast in der Model-Klasse alle Datenstrukturen, sowie die Datenmanipulationsprozeduren auf einen Haufen und kannst allein durch Durchlesen des Codes herausfinden, ob dein Code die Daten richtig verarbeitet.
- Du hast alle Aktionen, die der Nutzer tun kann im Controller. Dadurch hast du dort allen Code auf einen Haufen, der Eingaben überprüfen muss. Du schreibst dort im Prinzip nur Code, der die Eingabe prüft und dann eine Funktion des Modells aufruft.
- Du hast alles, was das Aussehen der Daten beim Nutzer angeht im View konzentriert. Wenn die Ausgabe der Daten doof ist, kannst du betreffenden Teil neu schreiben, ohne dass sich die Funktionen des Programms ändern oder du diese überhaupt zu Gesicht bekommst.
Ich hoffe, die Vorteile daraus erschließen sich dir einigermaßen. Du kannst den Code ja trotzdem noch lesen und verstehst alles, auch wenn du nur eine Datei liest! (Nämlich die, dessen relevanten Teilaspekt des Programms du gerade betrachten willst)
Weitere Anwendungsszenarien:
- Wenn ein Bug in der Berechnung ist, musst du eben nicht durch seitenweise Code scrollen, der Sachen Anzeigt, Ereignisse verarbeitet etc., sondern öffnest direkt das Model.
- Wenn du das Programm plötzlich auf eine andere Datenbank umstellen willst, musst du nur die Model-Sourcen anpacken. Der Rest des Programms funktioniert trotzdem wie gehabt.
- Wenn du eine neue Funktion einbaust, die ebenfalls Dinge anzeigen soll (z.B. eine REST-API), kannst du bereits vorhandene Funktionen des Models aufrufen.