in reply to Motivation for replacing object methods at runtime

I'd suggest using delegation to do this instead, i.e. you can delegate the implementation of a method to another class and change the delegation at runtime. This is a widely accepted OO practice, unlike tinkering with replacing methods.
  • Comment on Re: Motivation for replacing object methods at runtime

Replies are listed 'Best First'.
Re^2: Motivation for replacing object methods at runtime
by Narveson (Chaplain) on Jun 27, 2008 at 12:38 UTC

    Thanks for this suggestion.

    An example (in Perl) would be splendid.

    In the meantime, I asked Google, and perl delegate method implementation change delegation at runtime referred me to ObjectivePerl and Moose, among other things.

    Speaking of Moose, the original seeker was referred to Moose, among many other CPAN modules. An apt Moose example is one of the things I hoped this post might elicit.

    Delegation is a good word, and terminology is important, because

    • good terminology helps to clarify one's own thinking, and
    • approved terminology reassures others that one is not just making stuff up.

    Another really good term is dispatch table. In some cases, I am sure the best implementation of an OO method call is just to hand over the work to a nice lexical hash. Then the question would merely be replacing hash entries at runtime.