From c3ddd993afbdfe37e85df4a54738469dcbc0a37c Mon Sep 17 00:00:00 2001 From: cathook Date: Sat, 19 Apr 2014 23:39:29 +0800 Subject: Add description --- meowpp/oo/Register_Implement.h | 20 ++++++++++++++++++++ meowpp/oo/Register_Implement.hpp | 5 ++--- 2 files changed, 22 insertions(+), 3 deletions(-) (limited to 'meowpp/oo') diff --git a/meowpp/oo/Register_Implement.h b/meowpp/oo/Register_Implement.h index e46f86c..dd496fa 100644 --- a/meowpp/oo/Register_Implement.h +++ b/meowpp/oo/Register_Implement.h @@ -26,6 +26,26 @@ namespace meow{ virtual ImplementInterface* getImplement(T const& identify); virtual ~RegisterInterface(){ } }; + /******************************************************************* + @asciidoc + === meow:: *ImplementInterface/RegisterInterface* (C++ Class) + .Description + Assume there is a problem which can be solved by different algorithms. + Then you can write multiple classes to approach this problem. + + Now if you want to decide which algorithm to use in runtime, you can just + approach this case by a simple way: + + * Let all the problem-solving classes inherit from + `class ImplementInterface` , and call the constructure with giving + `identify` (type `T` ) . + * Create an object, type `RegisterInterface` , and register all your + implement class to it by call `regImplement(pointer to the class)`. + * Select which implement class you want by call `getImplement(identify)` , + which will return the pointer to the corresponding class. + + ''' + @asciidoc- + ******************************************************************/ } #include "Register_Implement.hpp" diff --git a/meowpp/oo/Register_Implement.hpp b/meowpp/oo/Register_Implement.hpp index 523f266..34d9129 100644 --- a/meowpp/oo/Register_Implement.hpp +++ b/meowpp/oo/Register_Implement.hpp @@ -13,9 +13,8 @@ namespace meow{ return true; } template - inline ImplementInterface* RegisterInterface::getImplement( - T const& identify - ){ + inline ImplementInterface* + RegisterInterface::getImplement(T const& identify){ if(implements.find(identify) == implements.end()){ return NULL; } -- cgit v1.2.3