J'ai besoin d'étendre plusieurs classes dans mon application C++ sans changer de code dans l'application. (Le produit s'étend comme une solution). Existe-t-il un modèle de conception spécifique pour le faire?Étendre une application sans changer la méthode principale?
-1
A
Répondre
3
Votre question est un peu vague. Afin d'étendre une application sans changer de code, l'application devrait fournir un mécanisme spécifique pour l'extensibilité, par ex. un plug-in system.
0
Cela dépend de la capacité d'extension que vous souhaitez. Serait-il acceptable si l'extension nécessite de relier le code? Si tout va bien, vous pouvez utiliser une méthode d'usine et un polymorphisme.
struct Extension {
virtual ~Extension() { }
// ...
};
Extension* load_extension()
{
ifstream config_file(".conf");
string line;
getline(config_file, line);
if(line == "this extension") return new ThisExtension();
else if(line == "that extension") return new ThatExtension();
// else if ...
else return NoExtension();
}
Ici, pour créer une nouvelle extension tout ce que vous devez faire est de sous-classe de Extension
et ajouter une ligne à la méthode de l'usine. Cela recompile un fichier et relit le projet.
Si ce n'est pas correct de relier l'application, alors vous pouvez load a dynamic library at runtime.
Questions connexes
- 1. Étendre HashMap pour ajouter la méthode putChildren
- 2. Comment étendre la méthode Dispose d'un WinForm?
- 3. MapView sans étendre MapActivity
- 4. Étendre la méthode de classe
- 5. lancer mon application à l'aide de la méthode principale
- 6. php5 étendre la classe principale et utiliser la statique
- 7. Héritage de la méthode principale
- 8. Boucle principale dans une application iPhone
- 9. Changer la langue dans une application
- 10. Ouvrir une seule activité, sans l'activité principale
- 11. JAVA classes et principale méthode
- 12. Méthode principale d'appel à partir d'une autre application
- 13. Quelle devrait être la méthode principale de Java pour une application autonome (pour Spring JMS)?
- 14. Exécuter la méthode principale Java à partir d'une application Java dans une JVM différente
- 15. mettre le code dans la méthode principale
- 16. Comment changer la catégorie principale de l'application iPhone après soumission?
- 17. Comment convertir une application iphone en ipad sans changer de code ou sans faire une nouvelle application?
- 18. Une application Cocoa se ferme-t-elle lorsque la fenêtre principale est fermée? Comment faire pour fermer une application Cocoa lorsque la fenêtre principale est fermée?
- 19. VB.net Méthode principale non exécutable
- 20. problème avec la copie application principale
- 21. C# Windows Service Méthode principale
- 22. étendre une classe de base abstraite sans recompilation de source?
- 23. Puis-je modifier la catégorie principale de mon application?
- 24. Étendre les pages flat pour une application spécifique
- 25. Comment étendre DataMapper :: ressources avec méthode personnalisée
- 26. Étirer la largeur d'un nœud sans étendre la largeur parent
- 27. Comment étendre un objet avec une nouvelle méthode, "plugin-style"?
- 28. Java Méthode principale, bon style de codage
- 29. changer UILabel texte sur une sous-vue de la vue principale
- 30. Comment puis-je étendre la classe MembershipUser sans héritage multiple?
Oui, pouvez-vous envoyer un exemple de code pour un tel mécanisme. – Janaka
@Janaka: Cela ne va pas vous aider. Vous devez vérifier si le code que vous avez déjà fournit un tel système. Il ne peut pas être ajouté sans changer de code. –