dedlfix: Komplettes Projekt in OOP

Beitrag lesen

echo $begrüßung;

Könntest du mir das irgendwie, vllt ein bisschen weniger komplex als Pfeildiagramm darstellen?

Na, mal sehen.

jede Klasse extends main Klasse extends datenbankklasse mit funktionen extends datenbankklasse mit connect,close funktion

Das ergibt am Ende, dass jede Instanz einer spezialisierten Klasse das komplette Erbe mit sich herumführt. Wenn du 3 Objekte erstellst, hast du auch 3 mal Datenbankverwaltung. Du brauchst aber nur eine, also steck die grundlegende Datenbankfunktionalität in eine eigenständige Klasse. Von der soll es nur eine einzige Instanz geben (vorausgesetzt du kommunizierst nur mit einem einzigen DMBS). Entweder übergibst du diese Instanz jedem Konstruktor, musst sie dafür aber auf Vorrat erzeugen. Oder du bedienst dich des Singleton-Patterns, das erst dann losläuft, wenn es gebraucht wird.

Wahrscheinlich denkst du grad nur daran, das Datenbankhandling, das sich früher im gesamten Script verteilt hatte, zu separieren. Vermutlich willst du aber noch wesentliche Bestandteile im Hauptprogramm lassen (Erstellung von Statements, Routinearbeiten beim Ergebnislesen, wasweißich). Ich habe in meiner ersten Antwort schon Aspekte einer weiteren Spezialisierung ins Spiel gebracht. Ich erachte es momentan als ideal[1], wenn das Hauptprogramm überhaupt nichts mehr mit der Beschaffung oder der Formulierung der Anfrage nach den Daten zu tun hat. Zwischen den grundlegenden und allgemein verwendbaren Funktionen des DBMS-Handlings ist also noch eine Schicht eingefügt, die die speziellen Anforderungen abwickelt, indem sie das Statement formuliert und die Daten holt. Das Hauptprogramm wird also entlastet und diese Datenschicht besorgt die Daten. Sie kann bei Bedarf auch die Daten woanders besorgen, ohne dass das Hauptprogramm dazu angepasst werden muss.

Ein Pfeildiagramm ist nun nicht entstanden, aber das wird auch nicht benötigt. Ich möchte dich nicht darin bestärken ein Klassenkonstrukt aufzubauen sondern darin, die Funktionalität zu beleuchten und anhand dieser die programmiertechnischen Einheiten zu bilden.

[1] Abgesehen davon, dass es Muster wie das MVC gibt, die das Ganze zwar noch flexibler dafür aber auch noch komplexer machen. Die Flexibilität eines Systems ist umgekehrt proportional zu seiner Komplexität.

echo "$verabschiedung $name";