.....
Zu 2. So oft wie möglich
....
Nein, das ist prinzipiell falsch!
Das würde bedeuten, dass man sich eine Klasse schreibt, um z.B. zu einer Variablen einen Wert 12 zu addieren. Die Verwendung von OOP ist zu relativieren und OOP ist keine Eier legende Wollmilchsau.
OOP erzeugt oftmals einen riesigen Overhead und macht nur Sinn, wenn man Scripte erstellt, die in Projekten z.B. ständig für andere Zwecke verwendet werden (also viel am Datenaufbau ändert) oder ständig erweitert werden.
Ob OO oder über Funktionen hägt sehr davon ab, ob es sinnvoll ist, sich den Aufwand anzutun.
Bsp.
Eine Admin-Useranlage für ein Gästebuch. Gehe ich davon aus, dass sich nicht jeder User registrieren muss und Adminrechte am Gästebuch braucht, ist eine kleine Funktion, die einen User anlegt sinnvoll. Die Funktion macht vielleicht 10 Zeilen Code aus, die Klasse sicher ein Vielfaches.
Eine Klasse, die eine Useranlage für 3 User generiert wäre hier vollkommen überzogen und ein Schuss mit Kanonen auf Spatzen.
Verwendest du aber die Userasnlage gemeinsam für dein Gästebuch, dein Forum und dein CMS macht OOP sehr wohl Sinn, da die Useranlage so flexiebel wie möglich sein soll und nun für 1000`de User angewandt wird.
OOP verlangsamt den Code, und macht Änderungen relativ aufwendig, das vergessen viele hier immer wieder.
Ähnlich sieht es übrigens aus, wenn sehr kleine Datenbestände aufgebaut und verwaltet werden. Da sind Dateien z.B. wesentlich schneller als Datenbanken.
Paradebeispiel sind Mailklassen.
Jeder will Mails versenden, dass aber aus unterschiedlichsten Beweggründen, mit unterschiedlichsten Mailservern und unterschiedlichsten Inhalten. Jeder hat ein eigenes Passwort und eigene Logindaten.
Du siehst, wie oft in diesem Beispiel Variablen vorkommen. Um das möglichst anpassungsfähig zu gestalten sind Klassen da und dann macht OOP auch echten Sinn.
Das Problem ist, dass man am Beginn seiner Programmier-Karriere, oftmals nicht (oder nur schwer) abschätzen kann, wann OOP sinnvoll eingesetzt wird und wann das vollkommen überzogen ist.
Wer OOP einmal durchschaut hat, tendiert dazu, alles Objekt orientiert zu machen und hat am Ende mehr Klassen, als andere, die mit Funktionen arbeiten.
Aus meiner Programmier-Tätigkeit heraus behaupte ich, dass gut 30-50% aller Klassen, die ich geschrieben habe, leichter und sicherer mit einer Funktion hätten gelöst werden können. Dabei hätte ich wesentlich weniger Zeit und weniger Code verbraucht.
Gut 90% meiner Scripte sind nicht für die Allgemeinheit bestimmt und erfüllen gezielt bestimmte Aufgaben, die sich in den nächsten Jahren sicher nicht in Aufbau und Funktionalität ändern.
Mittlerweile mutiere ich also zu sowas wie einem Funktionsmeister :mrgreen: und Fan.
Wer guten Code produziert, kann sehr mächtige Funktionen erstellen, die einer Klasse schon recht nahe kommen. Ersatz sind sie dennoch nicht. Man sollte sich also vorher Gedanken machen, was man braucht...... (is wie beim Handy)