Quether vous appelez-le addons forts>, plugins forts> ou pièces de l'autre du code connecté avec le logiciel d'origine ultérieurement em> stry > Cela n'a pas d'importance. J'aimerais bien comprendre comment ils travaillent, il doit y avoir une explication simple de la façon de concevoir un système de plug-in. Malheureusement, je ne l'ai jamais compris, et il reste beaucoup de questions ouvertes dans mon esprit. Par exemple, comment le programme trouve-t-il un plugin? Comment ça interface avec elle? Quand est-il préférable qu'un logiciel ait un système de plug-in? p>
Merci pour toutes les réponses utiles. Il semble que j'ai demandé une question trop ouverte, heureusement, j'ai des mots-clés à rechercher. J'ai aimé David Répondez bien que je ne suis pas un gars Java, mais sa conversation avait du sens pour moi :) P>
8 Réponses :
assembly.loadfile () code>) li>
ol>
Si vous souhaitez consulter un code source, peinture.net est libre et open source et a une architecture de plug-in. P>
Le Downvoter pourrait-il laisser un commentaire sur pourquoi? Merci.
Cela explique comment faire des plug-ins pas quelle est l'idée derrière eux.
Bonne réponse! Cependant, je trouve l'étape 1 et 3 de cette réponse très claire. Pourriez-vous s'il vous plaît élaborer à l'étape 2 "Écrivez le code qui" consommer "le plugin contre l'interface uniquement." ? Je n'ai pas vraiment compris celui-là. Merci!
Un programme doit généralement être conçu pour rechercher un plug-in et le plug-in doit avoir un point d'accès standard pour accepter le contrôle du programme principal. Chaque application ou site Web le fait un peu différemment.
Le type de plug-in le plus simple est accessible à quelque chose comme ceci: p> Dans ce cas, le programme principal est codé. Pour uniquement gérer un ensemble spécifique de plug-ins (de nombreux modèles WordPress à base de PHP sont comme celui-ci). Un plug-in légèrement plus avancé p> Ce second cas peut gérer des plug-ins ridiculement complexes ... Le plug-in aurait juste besoin de mettre en œuvre plus de fonctions appelées par le maître programme. p> p>
La complexité du plugin n'a rien à voir avec l'architecture pour implémenter un plugin.
Un système de plug-in peut être mis en œuvre à bien des égards, mais la manière courante de nombreuses applications C / C ++ est un plugin basé sur la DLL SDK. P>
La DLL exposera divers appels de fonction automatisés pouvant permettre au plugin de "se définir" dans l'application en cours d'exécution, telle que l'ajout d'éléments de menu, une nouvelle fonctionnalité ou des options supplémentaires pour les systèmes (comme des implémentations de rendu 3D). P>
plus de puits, il n'y a pas besoin de découverte spéciale - le plugin mécanici est généralement muet: voici une signature de code que je comprends, et voici un appel que je peux faire. Je n'ai aucune idée de la façon dont la chose que j'appelle fera le travail, mais je m'attends à ce que le résultat soit dans certains formats. Et c'est à peu près un contrat. Maintenant, le plugin mettra en œuvre le contrat et se rendre sera disponible. En Java, par exemple "mise à disposition" signifie simplement que la mise en œuvre de classes est chargée en mémoire. Le pilote JDBC pour une base de données particulière serait un bon exemple. P>
Eclipse Dans un exemple de framework d'application entièrement fort> basé sur le plug-in, ce qui signifie que toutes les fonctionnalités sont implémentées comme plugins. Il existe une fine couche en bas pour la start-up / arrêt et la gestion de la plug-in, mais tout le reste est mis en œuvre en tant que plugins en plus de cela. Cela se traduit par un cadre qui peut être utilisé pour presque tout. Plus d'infos sur l'architecture de plug-in Eclipse se trouvent ici: http: / /www.eclipse.org/articles/article-plug-in-architecture/plugin_architecture.html . P>
Les plug-ins du travail en se conformant à des interfaces bien connues que l'application principale s'attend à travailler avec. P>
Il existe différentes manières dans lesquelles une architecture plug-in fonctionne réellement, mais en général, ce sont les étapes: p>
Voici de deux manières (sur plusieurs) dans lesquelles une application peut trouver des plug-ins: p>
Lorsque des plug-ins sont trouvées, ils sont chargés par l'application (parfois le travail d'un chargeur de classe em>). p>
Un architecte logiciel peut concevoir une architecture de plug-in lorsqu'il s'attend à ce que le fournisseur de logiciels ou la communauté des utilisateurs implémente de nouvelles fonctionnalités qui ne font pas partie intégrante du système. Deux grands exemples sont Eclipse et Firefox; D'autres applications comprennent Adobe Photoshop (pour les techniques artistiques et les outils graphiques) et Winamp (pour les visualisations). P>
C'est très dépendant de la langue. P>
Dans une langue interprétée, cela implique simplement d'appeler un fichier qui suit un modèle. P>
en C Il est assez difficile à faire sans aide. Dans C + Windows, une "DLL" peut être un plug-in et sont souvent utilisées de cette façon. P>
Dans une langue OO avec réflexion, vous pouvez créer un objet qui implémente une interface et le charger de manière réfléchie. Après sa charge, vous pouvez ignorer le fait qu'il s'agissait d'un plug-in car il est traité comme tout autre objet de votre code. P>
.NET a une architecture de plug-in (est-ce com?) Quoi qu'il en soit, COM peut être utilisé comme (IS?) Un système de plug-in. P>
Votre question est probablement trop ouverte en raison de toutes les possibilités. Il n'y a pas de réponse unique. p>
Je n'ai jamais écrit de système de plug-in. Mais c'est comme ça que je l'imagine dans ma tête: p>