[Pluginsystem] Plugins sollen Optional sein

  • VB.NET
  • .NET (FX) 4.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    [Pluginsystem] Plugins sollen Optional sein

    Hallo, ich habe ein kleines Problem.
    Ich arbeite momentan an einem Programm mit Pluginsystem, als Vorlage habe ich dies von nikee13 genommen. Mein Problem ist nun wenn ich folgene Functionen für Plugins aktiviere, dann müssen die vom Plugin auch verwendet werden. Also mein Programm hat denn z.b. diese Funktion:

    VB.NET-Quellcode

    1. Public Interface IPlugin
    2. Function Verarbeite(ByVal str As String) As Boolean
    3. Function Testfunktion() As String
    4. End Interface


    Das Plugin das ich dann schreibe, zeigt mir denn an das die Funktionen ,,Verarbeite" und ,,Testfunktion" genutzt werden MUSS. Und genau das will ich Optional haben. Denn wenn ich das Pluginsystem mit hunderten Funktionen austatte ist es nicht gerade resourcen schonend wenn so viele zeilen code dann noch im Plugin intigriert sind, da ja nicht alle Funktionen genutzt werden müssen.
    Gibt es eine Möglichkeit das dies Optional für das Plugin ist? Das der Pluginentwickler selber entscheiden kann welche Funktionen er nutzt und welche nicht? Hab schon alles mögliche versucht, aber nichts gefunden :/

    MfG Mr. Johny
    Hmm, wäre auch eine Möglichkeit, das der Endnutzer denn die möglichkeit hat die funktionen in Kategorien zu unterteilen, aber das Problem besteht ja denn weiterhin, das der Entwickler denn ALLE Funktionen darin nutzen muss, bzw. sie in sein Code implementiert sein müssen. Also eine komplettlösung wäre das nicht. Aber danke Jemand eine andere Idee?

    Mr. Johny schrieb:

    genutzt werden MUSS
    überhaupt nix, diese Funktionen müssen lediglich implementiert sein.
    Du hast da grundsätzlich 2 Möglichkeiten:
    • wie @ThuCommix schreibt, mach Dir so viele verschiedene Interfaces wie nötig (nicht wie möglich),
    • wenn Du das nicht willst, mach zu wohlgeordneten Gruppen von Prozeduren je ein Function IsXxxAvailable() As Boolean und falls das nicht zutrifft, bleibe bei der Default-Implementierung: Throw New NotImplementedFunction().
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!