Wie baut man modularisierte Projekte überhaupt auf?
-
es kommt ein bischen darauf an, wie immer im leben oder
also du kannst module auch zur laufzeit laden das würde bedeuten das du eigentlich nur ein programm baust das andere programme dynamisch modular einläd. das klingt natürlich super blöd, macht aber sinn, da jeder halbwegs normale mensch bei gewisser software größe den überblick verliert und dann nur noch so rumstochert...also wird das ganze in schöne kleine teil probleme(programme) zerlegt und diese dann über schnittstellen verbunden. da liegt aber auch das problem wenn du den aufbau der schnittstelle änderst werden sehr wahrscheinlich die module nicht mehr funktionieren. Andererseits können die an den schnittstellen hängenden module schnell verändert werden.
stell dir mal ne glühbirne vor die kannst end schnell austauschen, aber mach das mal mit der fassung
evtl. willst dir dazu auch die windows functionen "LoadLibrary" und "GetProcAddress" anschauen
hier ist auch ein kleines beispiel
http://msdn.microsoft.com/de-de/library/64tkc9y5(VS.80).aspxlg lolo
-
Komplizierte Algorithmen sollte man in dlls auslagern, da man sie später dann einfach austauschen kann, aber der Rest kann ruhig statisch ins Programm gelinkt werden.
-
player4245 schrieb:
Komplizierte Algorithmen sollte man in dlls auslagern, da man sie später dann einfach austauschen kann, aber der Rest kann ruhig statisch ins Programm gelinkt werden.
was aber immer dazu verleitet die geschaffenen schnittstellen zu umschiffen
und final hast dann einen wollknäullg lolo
-
Versteh ich jetzt nicht *am Kopf kratz*
-
worauf ich hinaus wollte ist:
#inlcude "modul_a.h"
#inlcude "modul_b.h"modul b und a sollten ja nicht zusammen hängen aber da b nach a kommt könnten in modul b functionen aus modul a verwendet werden wodurch die zusammen hängen oder
-
Das ist manchmal aber unumgänglich.
-
Man teilt das Programm am besten in kleine Module auf. Die Abhängigkeiten der Module von einander sollten möglichst gering gehalten werden, so klein wie nur möglich. Die Schnittstellen sollten kompakt gehalten werden.
Schnittstellenweite globale Variablen sind ein absolutes Tabu. Modulweite globale Variablen sollten vermieden werden.
-
Janjan schrieb:
Modulweite globale Variablen sollten vermieden werden.
damit hatte ich bisher nicht so das problem, könnte sein das ich dann noch bekomme, sollte ich eins zweimal laden wollen
lg lolo
-
noobLolo schrieb:
damit hatte ich bisher nicht so das problem, könnte sein das ich das noch bekomme, sollte ich eins zweimal laden wollen
-
Ganz einfach. Modularisieren heisst: eine komplexe Aufgabe in überschaubare Teilaufgaben zu unterteilen. Auch das gehört zur Programmierung! :p