Ich brauche eine Erklärung zu einer wrapper-Klasse mit einem Beispiel, dass ein Kind verstehen würde
Lese ich dieser gesamte post. Es beschreibt, was eine wrapper-Klasse ist für erfahrene Programmierer, aber nicht für einen Neuling wie mich.
Verstehe ich PHP-syntax der Objekt-orientierten Konzept, aber nicht geschrieben haben, meine eigene Anwendung in Objekt-orientierten code noch. Darüber hinaus bin ich verwirrt, wenn Sie versuchen, herauszufinden, was genau eine wrapper-Klasse ist. Ich verstehe nicht den technischen jargon.
Ich hoffe, jemand antwortet mit einem schön detaillierten Kind-wie Beschreibung, ist leicht zu verstehen für jemand, der versteht die Grundlagen der Objekt-orientierten Programm und gelesen hat, durch so ziemlich die gesamte php.net Sprache, Referenz, hat aber keine tatsächliche Erfahrung in objektorientierter Programmierung. Keine Anwendungen geschrieben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da sich die Erläuterungen auf die Frage, die Sie verknüpft sind Recht umfangreich, ich werde nicht gehen in ein neu zu definieren, es wieder für Sie. Stattdessen werde ich versuchen, Ihnen zu zeigen, über ein Beispiel der Injektion.
So, oben haben Sie eine Klasse
Logger
dass Sie möglicherweise verwenden, um log-Informationen irgendwo. Wir wissen nicht wirklich, wie er es tut, wir wissen nur, dass es funktioniert.Nun, wir haben ein paar verschiedene logging-Möglichkeiten...
Nun, wenn wir unsere logger, wir tun es, indem Sie einen der folgenden Schritte aus:
Wir immer die Interaktion mit
$logger
in der gleichen Weise (dh. wir nennenwrite($message)
). Die wrapper-InstanzLogger
umschließt die eigentliche logging-Klasse und ruft die Methoden, die in unserem Auftrag.Häufiger Nutzung der oben genannten Art von code bei der Verwendung von Konfigurationsdateien zu bestimmen, was der logger ist. Zum Beispiel, betrachten wir den Fall, wo Sie möchten, Ihre Anmeldung an eine Datei. Haben Sie vielleicht eine config, die wie folgt aussieht:
Und Ihrer angepassten Klassen könnte so Aussehen:
Würden wir das gleiche tun für die anderen
adapted
Klassen. Dann, mit ein wenig änderung an der main-WrapperLogger
können wir die richtigen gewickelt, etwa durch die Verwendung der Konfigurations-Daten und Basis auf demtype
wird in der config definiert. Sobald Sie so etwas wie, dass im Ort, die Umstellung auf die Anmeldung per E-Mail ist so einfach wie das ändern dertype
in der config.Wrapper-Klassen nur machen Sie Ihr Kind die Klasse einfacher zu bedienen für einen bestimmten Umstand. Viele Bibliotheken sind geschrieben, um eine Breite Abdeckung der Vielfalt von Situationen und deshalb zu schwerfällig und Komplex zu bedienen. Eine ganze Reihe von Projekten, erstellen einen Wrapper für die Bibliothek, damit es einfacher zu verwenden.
Nehmen diese PDO-Klasse-Nutzung zum Beispiel:
Don ' T sorgen zu viel über die Einzelheiten. Weiß nur, dass diese Zeilen von code-Abfrage einer Datenbank. Eine wrapper-Klasse bietet die gleiche Funktionalität, die oben mit etwas wie:
Haben wir entfernt einige der schwerfälligen, aber nur selten verwendet, die Eigenschaften der Kind-Klasse in einer einfach zu bedienenden Benutzeroberfläche. Intern werden die wrapper-Klasse bauen die gleiche Art von anrufen, die an PDO, aber das ist versteckt vom Entwickler.
Disclaimer: Die Beispiele sind nur, dass.. Beispiele. Nicht gemeint ist, zeigen best-practices oder auch praktisch sein.