On Wed, 20 Jun 2012, ik wrote:

On Wed, Jun 20, 2012 at 10:20 AM, <michael.vancann...@wisa.be> wrote:



On Wed, 20 Jun 2012, ik wrote:

 On Wed, Jun 20, 2012 at 8:33 AM, LacaK <la...@zoznam.sk> wrote:

 **

Class helpers would not help ?

http://wiki.freepascal.org/**Helper_types<http://wiki.freepascal.org/Helper_types>



They can, but there is a protocol that I'm trying to create that provides
me information what to execute (out of white list). The thing is, that the
first request maps the methods to be used, and there could be 2 or 200. To
implement 200 methods that might be used is not a good idea imho, but
adding the proper method to the instance/class will work much better.


I don't understand this argument. The available methods must have an
implementation somewhere anyway. That means your code does not get smaller
by adding them dynamically.  Somewhere you must choose which method to
execute, and whether it is allowed or not, so this logic must be present
also. None of this requires dynamically adding methods as
far as I can see, or is made easier by dynamically adding methods.

So finally, what is gained by adding them dynamically ? Or what forces you
to even consider this path ?


Think of a plug-able system.  I have an engine, and code to execute.
Instead of compile everything to an ELF/PE, I place code on dynamic shard
library, and load it on run time when needed.

The idea is that the engine will not be rewritten for every new request
(that comes often), because it's logic (almost) never changes, but to load
code on demand that often changes, provide additional functions, changes of
logic, bug fixes etc...

The idea of implementing it like so, came to me after few years now of
having the need to recreate the whole logic based of the code for every new
demand from the client (both as human, and as software). The main code
almost never changes, but so many additions, that I'm starting to use the
dynamic execution of methods, and now I realize, that if I'll extract it to
a shard library, it will be much easier to change, add etc... only the
actual need, and not to touch other stuff, and that requires me to design
an engine instead.

This is understandable, but none of this explains why you would need to add a method to a class ? I have a similar system, but do not need to add
methods to a class ?

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to