|
Der Begriff "Spaghettiprogrammierung" entstammt der Kritik
an unstrukturierter Programmierung mit seinen jmp- bzw. goto-Befehlen
quer durchs Programm. Das Problem ist abgehakt seit es die Strukturierte
Programmierung Anfang der 70-ger Jahre gibt. In C/C++ kann man zwar immer
noch goto verwenden, aber niemand tut es um Spaghetticode zu erzeugen.
Aber auch der Datenzugriff quer beet ist Spaghetti. Auch dieses Problem
wurde gelöst mit der ObjektOrientierten Programmierung. Oder? Innerhalb
einer Klasse kann es immer noch Spaghettis geben, man bleibt aber sozusagem
auf dem eigenen Teller. Umfasst der Teller den ganzen Tisch (eine Klasse
für die gesamte Applikation) hat man trotzdem eine OO-Sprache benutzt
:-( Lösung ist hier, die Klassen richtig zurechtzuschneidern. Aber
wie?
Abhängigkeiten quer durch die gesamte Software: Modul A ruft in
Modul B die passende Methode B.A.x() auf, In B.C.y() wird eine Klasse
aus Modul C benutzt und abgeleitet, weil die fast genau das tut was man
braucht (wiederverwendet!), darin wird eine Klasse aus A assoziiert. Das
ist Dependency-Spaghetti, die nunmehr dritte Form.
Wie geht man da ran. Pattern verwenden. Also, her mit dem Pattern. Aber
Pattern müssen verstanden und richtig angewendet werden. Ein wichtiger
Lösungsbaustein ist die richtige Verwendung von Interfaces.
Diesem Problemkreis will sich dieser Abschnitt der vishia-Seiten widmen.
Aber bisher - under construction..
|