J'ai développé cette classe pour charger des plugins sous la forme d'objets partagés pour une application. J'ai actuellement pensé à 2 façons de charger les noms de fichiers de tous les plugins à charger par l'application. J'ai écrit une interface pour charger les noms de fichiers. J'ai quelques questions sur la façon d'améliorer cette conception. S'il vous plaît aider. Merci.Problème de conception avec le chargeur d'objet partagé
EDIT: modification de code par retour: D.
#include "Plugin.h"
//This class is an interface for loading the list of file names of shared objects.
//Could be by loading all filienames in a dir, or by loading filenames specified in a file.
class FileNameLoader
{
public:
virtual std::list<std::string>& LoadFileNames() = 0;
};
class PluginLoader
{
public:
explicit PluginLoader(LoadingMethod, const std::string& = "");
virtual ~PluginLoader();
virtual bool Load();
virtual bool LoadPlugins(FileNameLoader&);
virtual bool LoadFunctions();
protected:
private:
explicit PluginLoader(const PluginLoader&);
PluginLoader& operator=(const PluginLoader&);
bool LoadSharedObjects();
list<std::string> l_FileNames;
list<PluginFunction*> l_Functions;
list<Plugin*> l_Plugins;
};
Tout ce qui semble moche encore? Merci pour les commentaires quand même.
Sonne comme il pourrait être temps d'appliquer [YAGNI] (http://en.wikipedia.org/wiki/You_ain't_gonna_need_it) :) – sje397
en plus au-dessus, vous pouvez mettre en cache vos données de plug-ins comme 'std :: unordered_map> ' –
erjot