hotti: Objektorientierte Programmierung: Wo macht das richtig Sinn?

Beitrag lesen

hi,

Deshalb meine konkrete Frage an diejenigen unter euch, die objektorientiert arbeien: In welchen Fällen seht Ihr da Vorteile und in welchen ist es eigentlich wurscht?

Es macht Sinn, wenn sich das _Ergebnis_ als Objekt modellieren lässt. Und wenn, dann muss OOP auch konsequent genutzt werden. Beispiel: URL einer Webseite als Objekt. Das lässt sich gut modellieren und die Eigenschaften wie

Last-Modified
 Title
 Description
 Author
 CSS
 JS
 Language
 Charset

werden sozusagen konzentriert. Konsequent heißt: Es gibt für jede Einzelseite Eigenschaften, die zentral abgelegt sind und nicht etwa in Form von Ausnahmeregelungen, die mal hier, mal da notiert sind. Dabei ist es unerheblich, wo diese Zentraldaten stehen, das kann eine Textdatei, XML-Datei oder auch eine DB sein. Es wird sehr sinnvoll sein, für einen URL als Objekt objektabhängige Methoden zu haben, z.B. Funktionen zum

Erzeugen eines Objekts aus der Projektverwaltung heraus
 Zuweisen der Eigenschaften
 Dateitransfer
 Staging (Präsentation)

Daneben wird es sicher auch einige Objektunabhängige Funktionen geben und unterschiedliche ObjektMethoden zum Bestücken eines Objekts mit Eigenschaften. Es macht sicher Sinn, die Default-Attribute eines Objekts in den Konstruktor zu schreiben, insbesondere bei Teamarbeit sieht da jeder, was geht.

Die Kapselung infolge OOP führt zu einheitlichen Prozessen und klar abgegrenzten Schnittstellen. Die Sinnfälligkeit an Polymorphie und Vererbungsgeschichten muss im Einzelfall erwogen werden.

Shopsystem: Den Warenkorb würde ich nun gerade nicht als Objekt ansehen, denn gerade der ist schwer zu modellieren, weil die Bedürfnisse des Kunden sehr vielfältig sein können. Aber die Seite, den Shop selbst würde ich auf jeden Fall objektorientiert Programmieren. Ich hab mal einen einfachen Shop geschrieben (nicht OOP), da ging es nur um eine Produktklasse, und siehste: Da haben wir schonmal die Klasse(n) ;-)

Wann OOP keinen Sinn macht: Wenn die Programmiersprache als Objekt betrachtet wird und nicht das was dabei herauskommen soll.

Hotti