2010-11-30 4 views
0

Ich kann sehen, wo das Erstellen einer Datenbank Verbindungsklasse hilfreich ist, erweitern Sie diese Klasse, verwenden Sie es überall, ändern Sie einen Ort, senden Sie Abfragen mit, und so weiter. Aber außer einer Datenbankverbindungsklasse, db-Einstellungen, Pfadeinstellungen, was wäre die Art von Sache, die Sie von der Top-Level-Klasse erben würden?Was sind gute Dinge zu erben, wenn ein cms erweiterbar und/oder steckbar gemacht wird?

und warum machen CMS-Builder es so, dass Sie von dieser Spitzenklasse erben müssen? Ich denke, jeder kann eine Seite hacken und rohen PHP darin einfügen und es zum Laufen bringen, aber nicht in der Art und Weise, wie es entworfen wurde ... aber ansonsten "macht" der Designer, dass Sie diese Klasse erben. Gibt es eine Möglichkeit, eine Schnittstelle zu erstellen, die überprüft, ob Sie wirklich erben, wie Sie es sollten?

Ich versuche herauszufinden, was genau es wert ist, etwas zu erben. Gibt es mehr zu erweitern oder Module einstecken und was das wirklich bedeutet?

Antwort

1

Die zwei Gründe, die ich normalerweise für die OO-Vererbung sehe, insbesondere für CMS-Systeme, haben mit der Persistenz zu tun und repräsentieren die Hierarchie.

Persistenz kommt ins Spiel, wenn Sie mit einem System arbeiten, das über eine eigene Art von ORM verfügt. Auf diese Weise können Sie Entitäten einfach abfragen und abfragen, ohne dass Sie neue Tabellen benötigen. Es eröffnet auch leichter Möglichkeiten zum Definieren von Beziehungen zwischen verschiedenen Typen von Entitäten, so dass eine Ordnerklasse eine getContents-Methode hat, die ein Array anderer Entitäten zurückgibt.

Hierarchie kommt ins Spiel, indem Sie einen Basistyp haben, der die Angabe einer übergeordneten Entität erfordert. Die meisten CMS-Systeme hängen stark davon ab, den Inhalt in einer Art Eltern-Kind-Art darzustellen oder eine Ordnerstruktur direkt zu modellieren. Also, diese Art von Qualität in einer Basisklasse gewährleistet die Einhaltung.

Was Schnittstellen betrifft, hängt wirklich von der Sprache ab, die Sie verwenden. Wenn Sie ein schwach typisiertes System haben, müssen Sie, solange Ihre Objekte die richtigen Methoden implementieren, keine Schnittstelle implementieren. Wenn Sie tatsächlich eine konkrete Top-Ebene erweitern, würden Sie wahrscheinlich finden, dass Sie die Innereien-Algorithmen für die oben erwähnte Persistenz und das Parsen durch die Hierarchie darin durchforsten.

Verwandte Themen