From 4a70560b26063176efba62fba8dd9f32e3d328fc Mon Sep 17 00:00:00 2001 From: mishas Date: Fri, 21 Sep 2007 05:58:52 +0000 Subject: [PATCH] Played with BasicItemFactory: * added a virtual destructor (good for abstract classes :)) * added a method for creating an item using factory name and item's id * hid createItem method (as I want it to be used from within BasicItemFactory::create method only) * addedd deRegisterFactory method (I'm not sure if it's really needed or how to properly implement it ;( * added 'static' to ourFactories definition (fixed a problem) git-svn-id: file:///svnroot/simple-launcher/trunk@227 3ba93dab-e023-0410-b42a-de7732cf370a --- misc/BasicItem.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/misc/BasicItem.h b/misc/BasicItem.h index 5c3cca9..037f9b3 100644 --- a/misc/BasicItem.h +++ b/misc/BasicItem.h @@ -62,16 +62,22 @@ class BasicItemFactory { private: BasicItemFactory(); + virtual ~BasicItemFactory(); + +public: + static BasicItem *create(const std::string& factoryName, const std::string& itemID); + public: virtual const string::std& factoryName() const = 0; +protected: virtual BasicItem *createItem(const std::string&) const = 0; -protected: static void registerFactory(const std::string&, BasicItemFactory *); + static void deRegisterFactory(const std::string&, BasicItemFactory *); protected: - std::map ourFactories; + static std::map ourFactories; }; struct BasicItemCollection { -- 1.7.9.5