J'ai une question de conception sur ce scénario: Supposons que vous ayez un formulaire avec beaucoup de sites à remplir, appelons chaque site un plugin. Parmi d'autres classes que j'ai créé une classe PluginManager
qui recueillent des témoignages de tous les plug-ins et fournit des fonctionnalités et des propriétés:C# classes communication conception question
class PluginManager
{
...
BasePlugin CurrentPlugin {get;set;}
IEnumerable<BasePlugin> OpenedPlugins {}
bool SetPlugin() {..}
...
}
class BasePlugin {}
class MyPlugin : BasePlugin {}
entre autres amincit, il gère l'affichage le plug-in/site choisi.
Jusqu'à présent, je n'avais jamais besoin de communiquer entre 2 plugins ou plus. Maintenant je fais et je voulais vous demander, comment feriez-vous cela.
Mon opinion était d'ajouter en Event
à une certaine façon, la classe BasePlugin
et la poignée dans PluginsManager
classe, que le plug-in élever le Event
fournirait dans les EventArgs
les types de tous les autres Plugins qui devraient être touchés et une liste de delegates
pointant sur les méthodes à exécuter.
Avez-vous une idée? Je vous remercie !
Quel type de communication? Un appel de méthode simple, une messagerie complexe, etc.? –
Disons un appel de méthode simple! –