Neue Funktion für Klasse per Event-Listener?

  • Hey,


    gibt es die Möglichkeit einer bestehenden Klasse einer App neue Funktionen in einem Plugin per Eventlistener hinzuzufügen?


    Alternativ hätte ich ja die bestehende Klasse erweitert, aber es wird ja sonst weiterhin die bestehende Klasse aufgerufen und nicht die Erweiterte.


    Danke im Voraus

    Grüße

    Julian

  • Schildere doch einmal dein genaues Vorhaben, dann kann man dir sicher den richtigen Weg zeigen.

    In welcher Klasse möchtest du denn was bewirken?

    Die Möglichkeiten variieren stark je nach Klasse und Vorhaben und somit gibt es kein allgemein gültiges schema.

  • Ich hab's jetzt grundsätzlich ganz anders gelöst, indem ich einfach kein neues Plugin erstelle.


    Aber ging darum meiner Action-Klasse die Funktionen validateAssignLabel und assignLabel hinzuzufügen, um so Labels zu implementieren. Aber eben per Plugin.

  • Okay? Macht das einen so großen Unterschied? Schließlich beziehe ich mich ja auf das Selbe Objekt, wie die ursprüngliche Action-Klasse?

    • Official Post

    Hallo,


    siehe ab hier:



    TLDR: Nicht-abstrakte Klassen sind typischerweise nicht so programmiert, dass man davon zuverlässig und ohne Probleme ableiten kann, weil implizite Annahmen getroffen werden, die potentiell von Kindklassen verletzt werden.


    Nicht ohne Grund sind praktisch alle neuen Klassen von uns final + alle Werte private. Hinterher „auf machen“ geht immer, „zu machen“ nicht.

  • Tim Düsterhus


    Wenn die Klasse "LabelledTodoAction" jetzt nicht von "TodoAction" erben darf, wie soll ich dann umsetzen, dass außer den neu hinzugefügten Funktionen alle anderen Funktionen in der "TodoAction" aufgerufen werden?


    Edit: Analog brauche ich das auch bei meiner DecoratedCategory-Class, bei meiner ViewableDO-Class...


    Viele Grüße

    Julian

    • Official Post

    Hallo,

    Wenn die Klasse "LabelledTodoAction" jetzt nicht von "TodoAction" erben darf, wie soll ich dann umsetzen, dass außer den neu hinzugefügten Funktionen alle anderen Funktionen in der "TodoAction" aufgerufen werden?

    die Frage verstehe ich nicht: Du nimmst die Action, die jeweils die passenden Methoden enthält, in Abhängigkeit davon, was du machen möchtest.

  • Du erstellst dir einfach eine unabhängige Klasse und greifst in deinem EL dann an den entsprechenden Stellen auf die jeweiligen Klassen zu.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!