Wieviel Objekt-Orientiert ist gut?

Da_Chris

Erfahrenes Mitglied
Ich bin gerade dabei ein größeres Projekt von der Idee zum Entwurf reifen zu lassen. Und ich mach mir gerade sehr viele Gedanken dazu denn ich möchte eine Anwendung schaffen die mir auch nach Fertigstellung noch gefällt und mir nicht wieder veraltet vorkommt kaum das ich fertig bin :)

Ich habe mir dazu einiges an Objekt-Orientierten (OO) Ansätzen angesehen vor allem auch Patterns wie MVC und sogar Frameworks (wobei ich mich gegen letzteres entschieden habe).
Was mir aufgefallen ist: Seid es OO gibt werden nur noch Objekte verwendet. Zend Framework setzt das MVC Pattern durch und durch mit OO.

Nun frage ich mich ehrlich gesagt ist das nicht zu viel?
Am Beispiel von MVC. Warum sollte ich den Controler nicht sequenziell umsetzen?
Was bringt es mir hier Objekte zu verwenden wenn ich nur einen Ablauf darstellen will?
Oder ab wann soll ich einen einfachen Ablauf in ein Objekt packen?

Bitte nicht polarisiert antworten und bitte keine Diskussionen die hier vom Thema abweichen würden. Danke.
 
Zuletzt bearbeitet:
Nun der Sinn von Objektorientierter Programmierung ist einserseits das möglichst viel des geschriebenen Codes wiederverwendet werden kann und anderseits das die Anwendung möglichst leicht zu pflegen ist. Das versucht man dadurch zu erreichen, das man die einzelnen Aufgaben und Funktionalitäten kapselt (in Klassen -> die Baupläne für Objekte), oder anders gesagt das Gesamtprojekt in kleine Pakete/Module teilt.
D.h. bspw. alles was mit Datenbankzugriffen zu tun hat kommt in eine Klasse, alles was mit Authentifizierung zu tun hat kommt ebenfalls in eine Klasse, alles was mit der Ausgabe zu tun hat (z.B. bei Webprojekten Generierung von HTML) kommt in eine KLasse usw.
Das hat dann mindestens zwei Vorteile: 1. Du kannst bspw. die Datenbank-Klasse in weiteren Projekten wiederverwenden, d.h. du hast dann gewissermaßen schon vorgearbeitet ;). Voraussetzung dafür ist aber, das diese Datenbank-Klasse nichts enthält was nur speziell mit diesem Projekt oder anderen Funktionen zu tun hat.
2. Wenn Du etwas an der Ausgabefunktionalität oder an der Authentifizierung ändern willst, mußt Du nur in den entsprechenden Dateien/Klassen herumfummeln und kannst im Rest keinen Schaden anrichten (und mußt Dich auch nicht durch tausende Zeilen Code quälen um die richtige Stelle für die Änderungen zu finden) ;).

Das war jetzt zugegebenermaßen etwas vereinfacht, sollte aber das Prinzip klar machen.
Für kleine Projekte mag OOP umständlich und zu aufwendig sein, aber wenn das Projekt größer ist, oder in Zukunft noch ausgebaut werden soll, dann ist objektorientiertes Programmieren das sinnvollste was man tun kann.
 
mh danke erstmal aber das konzept des OOP habe ich verstanden und ich kenne auch die vorteile meine frage war aber doch spezieller gemeint ;)
Und btw: das projekt ist sehr groß :D
 
Ok, ich glaube ich verstehe was Du willst, aber das ist schwierig zu sagen. :)
Im Endeffekt liegt der Teil der Entscheidung immer im Ermessen des Entwicklers. Es ist, in diesem Fall, Dein Projekt und Du wirst Dich auch künftig damit "herumquälen müssen" ;).
Wenn Du bestimmte Teile Deines Projektes prozedural umsetzen willst, ist das auch ok. Und sicher werden auch 5 Entwickler unter Umständen dasselbe Projekt völlig unterschiedlich umsetzen und (leider oder zum Glück?) gibt es da nicht wirklich ein richtig oder falsch.
Die Frage ist eigentlich nicht hauptsächlich, ob für diesen oder jenen Bestandteil OOP übertrieben wäre, weil es ja "nur XXX ist", sondern ob es zur weiteren Pflege und Erweiterung des Projektes sinnvoll ist auch diesen Teil objektorientiert zu gestalten.
Und das kann man von außen schlecht entscheiden.

Ich denke auch das Dir hier kaum jemand etwas spezielleres erzählen kann.

Viel Spaß!
 
mh ja in erster linie will ich ja drüber diskutieren denn ich denke das is eines der themen wo man so oder so nicht sagen kann was richtig oder falsch is aber mir is wichtig dazu meinungen zu hören und vor allem auch warum der eine oder andere das so machen möchte. :)
 
Ich kann mich shredder01 nur anschließen. Diese Frage gab es in der Form schon mehrfach, eine konkrete Antwort gibt es einfach nicht.

Bei mir z. B. fliegt nahezu alles in ein Objekt, Ausnahmen gibt es vielleicht eine Hand voll.

Und das hat auch einen ganz simplen Grund: Erweiterbarkeit!

Das hängt natürlich auch stark vom Aufbau des Objektes ab, aber so kann man mit ein bisschen copy&paste und ein paar Anpassungen ruck zuck weitere Funktionen implementieren.

Bereits bestehenden Code im Fall X erst in ein Objekt umbiegen zu müssen, nur um irgendwas simples hinzufügen zu können, wäre mir persönlich zu umständlich. Da kann ich auch gleich Objekte verwenden.

Aber wie schon erwähnt, das kommt stark auf das Projekt drauf an. ;)
 
Auch ich mache eigentlich alles was geht mit Objekten. Es gibt mMn den Suabereren Code und ist später besser erweiterbar oder Wiederverwendbar.
 
Leider nicht zum Thema aufgrund von Zeitmangel, aber ich muss mal eine kleine Ermahnung aussprechen... Da_Chris, auch wenn du schon länger dabei bist, hatle dich bitte an die Netiquette im Bezug auf Klein-/Großschreibung, danke.
 
Zurück