Ich habe gerade mit dem Erstellen von Klassen in PHP angefangen zu lernen und zu spielen und ich frage mich, welcher Schmerz sie löst? Es scheint, als könnte ich mit einer ganzen Reihe von Funktionen die gleiche Arbeit erledigen in die Datei. Also meine Frage ist: Warum sollte ich Klassen verwenden?
Es ist eine Möglichkeit, Ihren Code auf intuitivere und realere Weise anzuzeigen. (Sie packen die Daten und alle möglichen Operationen mit diesen Daten zusammen.) Sie ermutigen auch die Kapselung, Abstraktion, das Verstecken von Daten ... Was Sie wirklich suchen, sind die Vorteile von OOP.
Die drei Säulen der objektorientierten Programmierung. Lerne sie gut:
Die erste Säule der objektorientierten Programmierung ist die Kapselung. Die Idee hinter der Kapselung ist, dass Sie jeden Typ oder jede Klasse diskret und in sich geschlossen halten möchten, sodass Sie die Implementierung einer Klasse ändern können, ohne eine andere Klasse zu beeinflussen.
Die zweite Säule der objektorientierten Programmierung, Spezialisierung, wird durch Vererbung umgesetzt; speziell durch Deklarieren, dass eine neue Klasse von einer existierenden Klasse abgeleitet ist. Die spezialisierte Klasse erbt die Merkmale der allgemeineren Klasse. Die spezialisierte Klasse wird abgeleitete Klasse genannt, während die allgemeinere Klasse als Basisklasse bekannt ist.
Anstatt Code von einem Typ in einen anderen zu kopieren, fügt der abgeleitete Typ die gemeinsamen Felder und Methoden ein. Wenn Sie ändern, wie eine gemeinsame Fähigkeit in der Basisklasse implementiert wird, müssen Sie den Code nicht in jedem abgeleiteten Typ aktualisieren. Sie erben die Änderungen.
Polymorphismus ermöglicht die Verarbeitung von Werten verschiedener Datentypen über eine einheitliche Schnittstelle. Die primäre Verwendung von Polymorphismus ist die Fähigkeit von Objekten, die zu verschiedenen Typen gehören, auf Methoden-, Feld- oder Eigenschaftsaufrufe mit dem gleichen Namen zu reagieren, wobei jeder nach einem geeigneten typspezifischen Verhalten arbeitet. Der Programmierer (und das Programm) müssen den genauen Typ des Objekts nicht im Voraus kennen, und so wird das genaue Verhalten zur Laufzeit festgelegt.
Siehe auch:
Grundsätzlich können Sie mit Klassen Ihre Daten mit dem Code - d. h. Organisation - verknüpfen.
Außerdem ermöglichen Klassen Ihren "Followern", Ihre Klassen anzupassen, ohne Ihren Code neu zu schreiben, sondern stattdessen neue vererbte Klassen zu erstellen.
Jeder klassenbasierte Code könnte mit Funktionen neu geschrieben werden, aber es wäre viel schwieriger zu verstehen.
Im Allgemeinen ist es so, dass Sie das Verhalten dieser Funktionen anpassen können. Normalerweise haben Sie eine Reihe von Funktionen, die zusammenarbeiten.
Personen, die diese Funktionen verwenden, möchten möglicherweise nur einen von ihnen für einen speziellen Fall ändern. Oder vielleicht stellen Sie eine Klasse zur Verfügung, die die Funktionen zwingt, in einem bestimmten Warum zu interagieren, aber Sie können nicht definieren, was sie tun .
Ein banales Beispiel: Stellen Sie sich vor, Sie hätten eine Bibliothek, um zu überprüfen, ob sich einige Dinge nicht überschneiden.
%Vor%Es ist eine Möglichkeit, Ihren Code granularer zu gestalten, indem Sie Daten verbergen, Probleme trennen und andere Best Practices anwenden.
IMO, das früher oder später nur Funktionen in Ihrem Code verwendet, führt zu Spaghetti-Code, der schwer zu pflegen und zu erweitern ist. Es ist schwieriger, Fehler zu beheben, es ist schwieriger, neue Funktionen zu implementieren, weil oft viel Code repliziert wird.
Sie können auch keine Polymorphie in Ihrem Code-Design verwenden, so dass Sie nicht mit Abstraktionen arbeiten können.