Warum sollte ich Klassen und nicht nur eine Sammlung von Funktionen verwenden? [Duplikat]

8

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?

    
JoeCortopassi 18.02.2010, 00:09
quelle

6 Antworten

4

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.

    
froadie 18.02.2010, 00:13
quelle
5

Die drei Säulen der objektorientierten Programmierung. Lerne sie gut:

Ссылка

Kapselung

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.

Spezialisierung

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

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:

Ссылка

Ссылка

    
Wayne Hartman 18.02.2010 00:13
quelle
1

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.

    
BarsMonster 18.02.2010 00:11
quelle
1

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%     
Richard Levasseur 18.02.2010 00:16
quelle
0

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.

    
anthares 18.02.2010 00:11
quelle
0

Das Klassen / Objekt ist die Art der Implementierung von objektorientiertem Anwendungsdesign. Es wurde ausführlich in zahlreichen OOAD / OOP-Büchern behandelt.

    
zerkms 18.02.2010 00:11
quelle

Tags und Links