digitalmars.D.learn - dispatch table; symbolic references
- Emil (24/24) Jun 08 2013 need a dispatch table and tried it this way:
- bearophile (6/10) Jun 08 2013 There is a create, but I think it's still very limited and I
- Emil (10/15) Jun 10 2013 did you mean Object.factory() ? It almost does it, but still have
need a dispatch table and tried it this way: class Action { string[string] function(string[string] p) action; this( string[string] function(string[string] p) action_ref ) { this.action = action_ref; } string[string] execute(string[string] parameters) { return this.action(parameters); } } then Action[string] dispatch_table = [ "test1" : new Action(&myapp.index.test), "test2" : new Action(&myapp.index.another_test) ]; auto my_first_result = dispatch_table["test1"].execute(["a": "aa", "b":"BB"]); auto my_second_result = dispatch_table["test2"].execute([" some string key for test2": "in test 2"]); This works, but I am wondering if there is another way. Does D support symbolic references so I could keep the hashtable in a string[string], or even use a string variable holding a class name to instantiate a class ? thank you
Jun 08 2013
Emil:This works, but I am wondering if there is another way. Does D support symbolic references so I could keep the hashtable in a string[string], or even use a string variable holding a class name to instantiate a class ?There is a create, but I think it's still very limited and I think it needs to be improved: http://dlang.org/phobos/object.html Bye, bearophile
Jun 08 2013
did you mean Object.factory() ? It almost does it, but still have to cast the object to the right class (where I can't use a string variable it seems) to use it or make all the classes I want to instantiate this way inherit from the same interface. thank you bearophile for pointing me in the right direction ... reading object_.d was fun but did not understand everything in there and will have to postpone ambitious stuff until I finish reading the book. On Saturday, 8 June 2013 at 12:46:40 UTC, bearophile wrote: ...There is a create, but I think it's still very limited and I think it needs to be improved: http://dlang.org/phobos/object.html Bye, bearophile
Jun 10 2013