In Java ohne Ereignisse werden Ereignisse mit Schnittstellenrückrufen nach dem Beobachtermuster modelliert. Es fällt mir auf, dass, wenn man an einem Framework mit mehr als einem halben Dutzend Events arbeitet, die Verwendung von Delegierten eine ziemlich ausführliche Übung wird.Werden callback/events auf der Basis von Schnittstellen jemals über Delegaten verwendet?
Als Java-Entwickler, der seine C# vergessen hatte, fragte ich mich, ob es jemals einen gültigen Grund gibt, Interfaces für Events zu verwenden, oder ob man Delegierte wirklich überall verwenden sollte?
Interessant ... aber immer noch ein wenig theoretisch für mich zu begreifen. Also, was wäre der Ansatz, Delegaten und nicht die folgende Callback-Definition verwenden: öffentliche Schnittstelle IPluginEvents { void OnLoad (IPlugin plugin); void OnShow (IPlugin-Plugin); bool CanUnload (IPlugin plugin); void OnUnload (IPlugin-Plugin); } –
Nun, eine Option wäre, eine Klasse zu haben, die die Schnittstelle implementiert, die Delegaten im Konstruktor nahm ... oder möglicherweise eine fließende Schnittstelle hatte 'WithLoadHandler (...). WithShowHandler (...)' usw. wo jeder Anruf eine neue Instanz der Klasse mit dem zusätzlichen Handler erstellt. Nicht sicher. Ach ja, es könnte sogar normale Ereignisse verwenden und die Schnittstelle durch Aufruf der Event-Handler implementieren. –