Stell Dir vor, wir kommen auf die Idee, unser Programm — jetzt fix und fertig und fehlerbereinigt und funktionstüchtig und überhaupt — um eine weitere Klasse zu erweitern. Wir könnten zum Beispiel eine Klasse Beraterin hinzufügen, weil wir eine Beraterin in unserer Firma brauchen.
Wir müßten natürlich zuerst die Klasse mit ihren Methoden schreiben. Die verbundene Liste braucht aber nichts davon zu erfahren, daß wir ihr eine weitere Klasse untergejubelt haben und wir müssen das Programm also überhaupt nicht verändern, damit es auch die Klasse Beraterin miteinbezieht. In diesem spezifischen Fall ist die verbundene Liste sehr klein und einfach zu verstehen, stell Dir aber vor, der Code wäre umfangreich und komplex wie bei einer großen Datenbank. Es wäre sehr schwierig, jede Referenz auf die Subklassen zu aktualisieren und die neue Subklasse überall hinzuzufügen. Dieses umständliche Verfahren stellte natürlich auch ein Paradies für den Fehlerteufel dar. Wir müssen unser Beispielprogramm nicht einmal neu kompilieren, um seinen Einsatzbereich zu erweitern.
Es sollte Dir klar sein, daß es möglich wäre, während der Abarbeitung des Programmes neue Typen zu definieren, sie dynamisch zu erzeugen und auch gleich zu verwenden. Wir müßten dazu den Code auf verschiedene Module aufteilen, die dann parallel ablaufen. Das wäre nicht einfach, aber durchaus möglich.
Wenn Du aufgepaßt hast, ist Dir wahrscheinlich aufgefallen, daß wir weder die Elemente der Liste noch die Liste selbst "zerstören". Wir müßten also die Klasse AngestelltenListe um eine Methode LoeschePerson und die Klasse Person um einen Destruktor erweitern.
Copyright © 1997, 1998, 2001-2006 Heinz Tschabitscher - Letzte Änderung 18. Dezember 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, TLC?