Heim  >  Artikel  >  Backend-Entwicklung  >  Drei objektorientierte PHP-Grundfunktionen und fünf Grundprinzipien

Drei objektorientierte PHP-Grundfunktionen und fünf Grundprinzipien

零到壹度
零到壹度Original
2018-04-10 16:15:571495Durchsuche


Der Inhalt dieses Artikels besteht darin, Ihnen die drei Grundfunktionen und fünf Grundprinzipien von objektorientiertem PHP mitzuteilen. Es hat einen gewissen Referenzwert.

Die drei Hauptmerkmale sind: Kapselung, Vererbung, Polymorphismus

Die sogenannte Kapselung bedeutet die Kapselung objektiver Dinge in abstrakte Klassen, und Klassen können das Ihre eigenen Daten und Methoden ermöglichen nur den Betrieb vertrauenswürdiger Klassen oder Objekte und verbergen Informationen vor nicht vertrauenswürdigen.

Kapselung ist eines der Merkmale der Objektorientierung und das Hauptmerkmal von Objekt- und Klassenkonzepten. Einfach ausgedrückt ist eine Klasse eine logische Einheit, die Daten und Code kapselt, der mit diesen Daten arbeitet. Innerhalb eines Objekts können einige Codes oder Daten privat sein und für die Außenwelt nicht zugänglich sein. Auf diese Weise bieten Objekte unterschiedliche Schutzniveaus für interne Daten, um zu verhindern, dass unabhängige Teile des Programms versehentlich Änderungen vornehmen oder die privaten Teile des Objekts falsch verwenden.

Die sogenannte Vererbung bezieht sich auf eine Methode, die es einem Objekt eines bestimmten Typs ermöglicht, die Eigenschaften eines Objekts eines anderen Typs zu erhalten. Sie unterstützt das Konzept der hierarchischen Klassifizierung.

Vererbung bezieht sich auf die Fähigkeit, die gesamte Funktionalität einer vorhandenen Klasse zu nutzen und diese Funktionalität zu erweitern, ohne die ursprüngliche Klasse neu schreiben zu müssen. Die durch Vererbung erstellte neue Klasse wird als „Unterklasse“ oder „abgeleitete Klasse“ bezeichnet, und die geerbte Klasse wird als „Basisklasse“, „übergeordnete Klasse“ oder „Superklasse“ bezeichnet. Der Prozess der Vererbung ist der Prozess vom Allgemeinen zum Besonderen. Um eine Vererbung zu erreichen, können Sie dies über „Vererbung“ und „Zusammensetzung“ erreichen. Es gibt zwei Arten von Möglichkeiten, das Konzept der Vererbung zu implementieren: Implementierungsvererbung und Schnittstellenvererbung. Die Implementierungsvererbung bezieht sich auf die Möglichkeit, die Eigenschaften und Methoden der Basisklasse ohne zusätzliche Codierung zu verwenden. Die Schnittstellenvererbung bezieht sich auf die Möglichkeit, nur die Namen der Eigenschaften und Methoden zu verwenden, die Unterklasse muss jedoch eine Implementierung bereitstellen Sogenannter

Polymorphismus

bedeutet, dass dieselbe Methode einer Klasseninstanz in verschiedenen Situationen unterschiedliche Erscheinungsformen aufweist.

Polymorphismus ermöglicht es Objekten mit unterschiedlichen internen Strukturen, dieselbe externe Schnittstelle zu teilen. Dies bedeutet, dass die spezifischen Operationen an verschiedenen Objekten zwar unterschiedlich sind, sie (diese Operationen) jedoch auf die gleiche Weise über eine gemeinsame Klasse aufgerufen werden können.

Fünf Grundprinzipien

Single-Responsibility-Prinzip SRP (Single-Responsibility-Prinzip)

bedeutet, dass die Funktion einer Klasse einzeln sein muss und nicht alle sein kann -inklusive. Wie einem Menschen sollte auch Ihnen nicht zu viel Arbeit zugewiesen werden, da Sie sonst zwar den ganzen Tag beschäftigt sind, Ihre Effizienz aber nicht hoch ist.

Open-Close-Prinzip OCP (Open-Close-Prinzip)

Ein Modul sollte hinsichtlich der Erweiterbarkeit offen und hinsichtlich der Veränderbarkeit geschlossen sein. Beispiel: Ein Netzwerkmodul verfügte ursprünglich nur über serverseitige Funktionen, jetzt müssen jedoch clientseitige Funktionen hinzugefügt werden.
Dann sollte der Implementierungscode der clientseitigen Funktionen hinzugefügt werden, ohne den serverseitigen Funktionscode zu ändern. Dies erfordert, dass das Design von Anfang an Server und Client trennt und die öffentlichen Teile abstrahiert.

Substitutionsprinzip (das Liskov-Substitutionsprinzip LSP)

Unterklassen sollten in der Lage sein, die übergeordnete Klasse zu ersetzen und überall dort zu erscheinen, wo die übergeordnete Klasse erscheinen kann. Wenn das Unternehmen beispielsweise eine jährliche Party veranstaltet, können alle Mitarbeiter an der Lotterie teilnehmen. Unabhängig davon, ob es sich um alte oder neue Mitarbeiter handelt,
und ob es sich um Mitarbeiter in der Zentrale oder um im Ausland lebende Mitarbeiter handelt, sollten sie an der Lotterie teilnehmen können Lotterie, sonst wird das Unternehmen nicht harmonisch sein.

Das Abhängigkeitsinversionsprinzip DIP (das Abhängigkeitsinversionsprinzip DIP) Das Konkrete hängt von der Zusammenfassung ab, und die obere Schicht hängt von der unteren Schicht ab.

Angenommen, B ist ein niedrigeres Modul als A, aber B muss die Funktionen von A verwenden. Zu diesem Zeitpunkt sollte B die konkrete Klasse in A nicht direkt verwenden: Stattdessen sollte B eine abstrakte Schnittstelle definieren und verwenden es von A. Um diese abstrakte Schnittstelle zu implementieren, verwendet B nur diese abstrakte Schnittstelle: Dadurch wird der Zweck der Abhängigkeitsumkehr erreicht, und B entlastet auch seine Abhängigkeit von A. A wiederum hängt von der durch B definierten abstrakten Schnittstelle ab. Es ist schwierig, die Abhängigkeit von Modulen der unteren Ebene durch Module der oberen Ebene zu vermeiden. Wenn B auch direkt von der Implementierung von A abhängt, kann dies zu zirkulären Abhängigkeiten führen. Ein häufiges Problem besteht darin, dass beim Kompilieren von Modul A die CPP-Datei von Modul B direkt eingebunden werden muss und beim Kompilieren von B auch die CPP-Datei von A direkt eingebunden werden muss.

Das Schnittstellentrennungsprinzip ISP

Module sollten durch abstrakte Schnittstellen isoliert werden, anstatt stark durch konkrete Klassen gekoppelt zu sein

Das obige ist der detaillierte Inhalt vonDrei objektorientierte PHP-Grundfunktionen und fünf Grundprinzipien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn