✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Was ist zu viel für die Weitergabe von Daten per Dependency Injection?

11

Das Thema Abhängigkeitsinjektion ist eines, das in Kreisen der objektorientierten Programmierung schon seit einiger Zeit umgeht. Manchmal sehen wir es in WordPress; manchmal nicht.

Ich bin ein Fan davon, aber ehrlich gesagt bin ich mir nicht immer sicher, wie viele Informationen ich in eine Klasse einbringen soll. Ich meine, sagen wir, wir bekommen zwei Klassen, und eine enthält Informationen, die die andere braucht.

  • Fügen wir keine Klasse in eine andere Klasse ein?
  • Fügen wir nur eine Information (sei es ein String, eine Ganzzahl, eine Datenstruktur oder was auch immer) in die andere Klasse ein?

Ich glaube nicht, dass es dafür eine feste Regel gibt, aber es ist wahrscheinlich sicher zu sagen, dass es besser ist, nur die Daten einzufügen, die Sie benötigen. Aber dann stellt sich die Frage, wie man die Daten vorbereitet, die in eine bestimmte Klasse eingefügt werden sollen.

  • Erstellen Sie eine Methode in einer Klasse und übergeben Sie sie an eine andere?
  • Geben Sie ein Stück private oder geschützte Informationen hinein?

Andererseits denke ich, dass es davon abhängt, ob irgendetwas mit den Informationen passieren muss, bevor sie an eine Klasse weitergegeben werden.

Wie auch immer, ich könnte für den Rest des Beitrags hin und her gehen und nie zu einem Schluss kommen, also warum nicht etwas Quellcode durcharbeiten, bis es etwas Vernünftiges gibt.

Beginnen wir damit, dass wir eine Haupt-Plugin-Klassendatei haben und diese Klasse für die Pflege von Informationen verantwortlich ist, wie zum Beispiel:

  • der Pfad zum Plugin,
  • die URL zum Plugin,
  • ob das Plugin geladen ist oder nicht,
  • der aktuell betrachtete Bildschirm,
  • und die Klassen, an die bestimmte Informationen gesendet werden müssen (denken Sie an pub/sub ).

Vielleicht könnte ein Skelett oder ein Stub der Klasse so aussehen :

Dann fangen wir ganz breit an. Angenommen, wir möchten die gesamte Klasse nehmen und sie an eine der Klassen weitergeben, an die sie Informationen sendet.

Wenn dem so wäre, könnte es so aussehen :

Eine der Herausforderungen dabei ist jedoch, dass weit mehr Informationen als nötig in eine andere Klasse übertragen werden. Darüber hinaus leitet es Informationen weiter, die Informationen über die Klasse enthalten, in die es Informationen übergibt.

Nehmen wir also an, wir wollen einen Schritt zurücktreten und einfach eine der privaten Informationen weitergeben. Das ist einfach, oder? Am Ende sieht es ungefähr so ​​aus :

Und das mag für manche Fälle völlig ausreichend sein. Aber wie bereits erwähnt, gibt es auch Zeiten, in denen wir die Informationen aufnehmen, verarbeiten und dann an eine Klasse weitergeben möchten.

Dazu definieren wir einfach eine Methode, lassen sie Informationen verarbeiten und übergeben dann den Rückgabewert an die Klasse, die die Informationen benötigt :

Die Idee hinter dieser Diskussion entstand, als ich an einer Codeüberprüfung für ein aktuelles Projekt arbeitete und die verschiedenen Optionen besprach, mit denen Informationen an eine Klasse weitergegeben werden könnten.

Also habe ich breit angefangen (trotz dessen, was notwendig ist, selbst angesichts des obigen Denkprozesses) und es dann auf das eingegrenzt, was nur notwendig ist.

Aufnahmequelle: tommcfarlin.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen