OOP im Content-Managment System?

H

hot_wax

Hallo,
das man ein Template System oder oder Datenbankzeugs in Klasse unterbringt ist klar. Aber ich habe auch gehört das man das ganze 'theoretisch' in ganz OOP umsetzten kann. Aber wie soll das gehen, hat man den Klassen wie 'NewsAdd, NewsEdit, NewsDelete' und von diesen Klassen werden Objekte erstellt?
Kann mir das jemand anhand eines Beispieles erklären?
 
Das Problem ist wahrscheinich eher, dass dir grundlegende Kenntnisse in OOP zu fehlen scheinen? Es gibt wohl eher eine Klasse News mit Methoden edit, add, delete. Wobei das auch komisch ist, weil es besser heissen muesste:
Code:
Content newsContent = new NewsContent();
newsContent.add(new News("blub"));
Ansonsten ist deine Frage schon sehr allgemein...
 
Und sprichst du von OOP allgemein oder möchtest du dich auf eine spezifische Sprache beziehen? Denn dort gibt es dann auch noch einmal Unterschiede.
 
Ich spreche davon das man zum Beispiel eine Klasse News hat, diese kann add, edit und delete. Nun bringt das den was weil man trotzdem noch eine Datei braucht die die Instanz erstellt und die Daten an das Objekt übergibt. Und das würde ja einfach nur ein paar Funktionen sein, für was dann eine Klasse?
 
Da muß ich Wolfsbein recht geben!
Versuch mal "OOP" zu googlen. Der erste Link ("Wikipedia") sollte interessant sein.
Wenn Du das verstanden hast, müßten Deine Fragen beantwortet sein...
 
Da muß ich Wolfsbein recht geben!
Versuch mal "OOP" zu googlen. Der erste Link ("Wikipedia") sollte interessant sein.
Wenn Du das verstanden hast, müßten Deine Fragen beantwortet sein...

Ich weiß was OOP ist, ich farge mich nur wie zum Beispiel so eine News Klasse aussehen könnte. Warum muss ich eine Klasse machen, ich kann doch auch die Aufgaben Add, Edit und Delete einfach in Funktionen packen und mit den nötigen Parametern übergeben.
 
hot_wax hat gesagt.:
Warum muss ich eine Klasse machen, ich kann doch auch die Aufgaben Add, Edit und Delete einfach in Funktionen packen und mit den nötigen Parametern übergeben.

Ja, das kannst Du!
Bedenke, daß ein ContentManagementSystem aus vielen verschiedenen "Objekten" bzw. "Modulen" besteht!
Wenn Du jetzt einfach allgemeine Funktionen erstellst, ist das CMS ja gar nicht flexibel.

Eine Funktion Add() für alle "Module" des CMS macht ja wohl wenig Sinn, da je nach Aufruf unterschiedliche Parameter erwartet werden und vor allem der interne Ablauf etwas abweicht.
Klar, jetzt kommt natürlich das Stichwort "Funktionsüberlagerung", aber mal ehrlich, wenn man wirklich weiß, was OOP ist und was die Vorteile sind, dürfte man doch gar nicht dran zweifeln, daß das die elegantere Lösung ist!

Du hast eine Klasse, auf die Du ein Objekt instanziierst und kannst direkt über dieses Objekt auf dessen spezifische Methoden zurückgreifen.
Allein der Entwicklungsaufwand bei Systemanpassungen spricht doch eindeutig für OOP!
Wenn Du ne "öffentliche" Funktion Add() hast und die für ein bestimmtes Modul ändern mußt, müssen evtl. viele andere Module auch dementsprechend angepasst werden, damit sie weiterhin laufen.
Es sollte auffallen, daß dies mit der Zeit viel zu aufwendig ist.
Bei OOP änderst Du die Methode einer Klasse und alles andere bleibt wie gehabt!

Und darauf sollte man kommen, wenn man weiß was OOP ist und dessen Vorteile kennt... ;)
 
Ja, das kannst Du!
Bedenke, daß ein ContentManagementSystem aus vielen verschiedenen "Objekten" bzw. "Modulen" besteht!
Wenn Du jetzt einfach allgemeine Funktionen erstellst, ist das CMS ja gar nicht flexibel.

Eine Funktion Add() für alle "Module" des CMS macht ja wohl wenig Sinn, da je nach Aufruf unterschiedliche Parameter erwartet werden und vor allem der interne Ablauf etwas abweicht.
Klar, jetzt kommt natürlich das Stichwort "Funktionsüberlagerung", aber mal ehrlich, wenn man wirklich weiß, was OOP ist und was die Vorteile sind, dürfte man doch gar nicht dran zweifeln, daß das die elegantere Lösung ist!

Du hast eine Klasse, auf die Du ein Objekt instanziierst und kannst direkt über dieses Objekt auf dessen spezifische Methoden zurückgreifen.
Allein der Entwicklungsaufwand bei Systemanpassungen spricht doch eindeutig für OOP!
Wenn Du ne "öffentliche" Funktion Add() hast und die für ein bestimmtes Modul ändern mußt, müssen evtl. viele andere Module auch dementsprechend angepasst werden, damit sie weiterhin laufen.
Es sollte auffallen, daß dies mit der Zeit viel zu aufwendig ist.
Bei OOP änderst Du die Methode einer Klasse und alles andere bleibt wie gehabt!

Und darauf sollte man kommen, wenn man weiß was OOP ist und dessen Vorteile kennt... ;)

Ich weiß schon was du meinst. Jedoch nehmen wir mal an ich habe verschiedene Module (News, Artikel, Referenzen etc.). Jedes Modul hat eine Klasse mit Methoden (Add, Edit, Delete etc.). So nun müsste ich zum Beispiel der Methode Add mehrere Parameter (Titel, Text, Autor) übergeben, diese Paramter müssen ja in der Methode überprüft werden auf vollständigkeit (Alles ausgefüllt etc.) und dann in die Datenbank eingetragen werden. Aber immer in eine andere Spalte der Tabelle (News, Artikel...) sodass ich diese Add-Methode immer ändern muss für ein anderes Modul. Deswegen frage ich auch warum man das so macht?

Könnte doch genauso eine Datei machen in der per switch-Statement der nötige Fall ausgewählt wird und doch alles verarbeitet (überprüfen und in Datenbank eintragen) wird.

Ich hoffe ich versteht was ich meine =)
 

Neue Beiträge

Zurück