Comment concevoir extensible logiciel (architecture de plugin)?

J'ai besoin de quelques ressources que parler de la façon de concevoir votre logiciel pour être extensible, c'est à dire afin que d'autres personnes peuvent écrire des add-ons/plugins qui ajoute des fonctionnalités à elle.

Que recommandez-vous? Tous les livres qui abordera le sujet?

Je préfère quelque chose de plus c'est court et au point; un peu de théorie et un tas d'exemples concrets.

Je ne suis pas le ciblage d'une langue spécifique, je veux être en mesure de comprendre l'idée de base afin que je puisse la mettre en œuvre dans n'importe quelle langue.

Et pour la même raison, je préfère ne pas le faire à l'aide d'un cadre que quelqu'un d'autre construit (à moins que le cadre n'est pas très haut niveau, c'est à dire de ne pas cacher trop beaucoup), à l'instant, je veux seulement me renseigner sur le sujet et à expérimenter avec différentes façons de la mettre en œuvre. De Plus, un cadre suppose généralement la connaissance de l'utilisateur sur le sujet.

Mise à JOUR

Je ne suis pas de demander à propos de la programmation orientée objet ou de permettre à mes cours pour être héritée. Je parle de la conception d'une application qui sera déployé sur un système, de sorte qu'il peut être étendu par des tiers add-ons APRÈS son déploiement.

Par exemple, Notepad++ possède une architecture de plug-in où vous pouvez placer une .fichier dll dans le dossier plugins, et il ajoute des fonctionnalités à la demande qui n'était pas là, comme la couleur, la cueillette ou l'insertion de fragments, ou bien d'autres choses (un large éventail de fonctionnalités).

  • Je pense que vous trouverez que la plupart des plug-in environnements de fournir des classes de base pour l'utilisation dans l'écriture d'un plug-in. Personnalisé de votre 3ème partie plug-in ne se dériver de la classe de base, et de l'étendre de "plug-in standard" de la fonctionnalité.
  • Vous verrez que la nature extensible de logiciels comme Firefox et Notepad ++ est originaire de il est de conception OO des racines. Le même principe qui fait vos classes extensible aideront à rendre votre logiciel ensemble extensible.
InformationsquelleAutor hasen | 2008-11-27