Was ist daran falsch, dies in PHP zu tun?

WBOY
Freigeben: 2016-10-10 11:56:13
Original
937 Leute haben es durchsucht

Der Grund, warum ich diese Frage gestellt habe, liegt tatsächlich darin, dass ich diese Antwort auf Zhihu gelesen habe:

Was sind die häufigsten Low-Level-Fehler bei der PHP-Programmierung?

http://www.zhihu.com/question...

Der falsche Ansatz wurde erwähnt:
Bei Verwendung von Class als Namespace ist die Methode die Funktion von Class

Was ist daran falsch?

Antwortinhalt:

Der Grund, warum ich diese Frage gestellt habe, liegt tatsächlich darin, dass ich diese Antwort auf Zhihu gelesen habe:

Was sind die häufigsten Low-Level-Fehler bei der PHP-Programmierung?

http://www.zhihu.com/question...

Der falsche Ansatz wurde erwähnt:
Bei Verwendung von Class als Namespace ist die Methode die Funktion von Class

Was ist daran falsch?

Die Verwendung prozeduraler strukturierter Programmierung ist „ideologische Verfestigung“? Ich denke, dass die Behandlung von „objektorientiert“ als universelles „Einheitsmodell“ eine „achtbeinige, essayartige ideologische Verfestigung“ ist und sogar vorgeschlagen wird Es orientiert sich vollständig an den „One Size Fits All Extreme“-Programmieranforderungen von Objekten. Der größte Vorteil des Objektdenkens liegt darin, dass verwandte Funktionen gekapselt und für andere zum Aufruf bereitgestellt werden können Namenskonflikt, ändern Sie einfach den Klassennamen. Wenn es einen Namenskonflikt mit einer Klasse gibt, müssen Sie die Präfixe mehrerer Funktionen ändern. Es ist also nichts Falsches daran, Klassen als Namespaces zu verwenden

Schauen wir uns PHP selbst an. Die von PHP bereitgestellten Funktionen umfassen zwei Arten der Kapselung: funktionsbasierte und klassenbasierte Kapselung. Die funktionsbasierte Kapselung umfasst häufig verwendete Zeichenfolgenoperationsfunktionen und Array-Operationsfunktionen usw. Die basierte Kapselung umfasst SPL-Bibliotheken usw. Würden Sie sagen, dass objektorientierte Programmierung fortgeschrittener und bequemer sein muss als prozedurale Programmierung? Wenn Sie sich wirklich für objektorientierte Programmierung interessieren, sollten Sie das nicht lernen Java, wo alle Bibliotheken auf Klassenkapselung basieren und „vollständig objektorientiert“ sind?

Java-Meister Wang Yin betrachtet objektorientierte Programmierung:

„Objektdenken“ als Möglichkeit des Datenzugriffs hat gewisse Vorteile. Allerdings ist „objektorientiert“ (mit dem Zusatz „orientiert“) nur eine weit hergeholte und überzogene Verwendung dieser ursprünglich guten Idee. Viele objektorientierte Sprachen behaupten, dass „alles ein Objekt“ ist, packen alle Funktionen in sogenannte Objekte, sogenannte „Methoden“, und nennen gewöhnliche Funktionen „statische Methoden“. Tatsächlich müssen Sie nur sehr selten, wenn eine Abstraktion erforderlich ist, „Methoden“ verwenden, die in das Objekt eingebettet und eng mit den Daten integriert sind. In anderen Fällen möchten Sie eigentlich nur Transformationsoperationen zwischen Daten ausdrücken. Diese können mithilfe gewöhnlicher Funktionen ausgedrückt werden, was einfacher und direkter ist. Alle Funktionen in Objekte zu packen bedeutet, das Pferd von hinten aufzuzäumen, denn Funktionen selbst gehören nicht zu Objekten, sondern sind lediglich Transformationsoperationen an Objekten. Die meisten Funktionen sind unabhängig von Objekten und können nicht als „Methoden“ bezeichnet werden. Alle Funktionen in Objekte zu zwingen, zu denen sie ursprünglich nicht gehören, und sie alle als „Methoden“ zu behandeln, führt zu einer übermäßig komplexen objektorientierten Codelogik. Es ist eine sehr einfache Idee, aber man muss viele Umwege gehen, um sie klar auszudrücken.

Viele Menschen wissen immer noch nicht, dass viele der Vorteile der von ihnen verwendeten „objektorientierten Sprache“ von prozeduralen Sprachen geerbt werden. Den meisten objektorientierten Sprachen fehlt ein korrekter Mechanismus zur Implementierung erstklassiger Funktionen. Die Java-Sprache ist ein Extrem, sie erlaubt überhaupt nicht, dass Funktionen als Daten übergeben werden. Sie müssen alle Funktionen in Klassen kapseln und sie „Methoden“ nennen, aber wie gesagt, das ist eine Entführung. Der Mangel an erstklassigen Funktionen ist der Hauptgrund dafür, dass es in Java so viele „Entwurfsmuster“ gibt. Sobald Sie über erstklassige Funktionen verfügen, benötigen Sie die meisten dieser Designmuster nicht mehr.

Nur ​​persönliche Meinung:

Das größte Problem ist, dass

ich nicht aus dem Prozess herauskomme und nicht verstehen kann, was die objektorientierte Programmierung wirklich verändert und was die wirklichen Vorteile der objektorientierten Programmierung sind, geschweige denn der Schnittstelle -orientierte Programmierung. 思想的固化

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage