in reply to Re^3: Subclassing a class that uses an internal dispatch table
in thread Subclassing a class that uses an internal dispatch table

But isn't that breaking one of the cardinal rules?


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."
  • Comment on Re^4: Subclassing a class that uses an internal dispatch table

Replies are listed 'Best First'.
Re^5: Subclassing a class that uses an internal dispatch table
by dragonchild (Archbishop) on Oct 30, 2007 at 22:57 UTC
    Nope. Think of it as a hash lookup that is a huge set of hashes looked at in the proper order.

    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

      Hm. That could be said about any code that relies upon the use of symbolic references. Perl's symbol tables are hashes, and using a symbolic reference is simply looking up the 'name' in a one of those hashes.

      But still, the primary argument against using symbolic references hold true. If someone sends you a correctly formed cmd message that contains a cmd that coincides with a method name that is not a part of the interface, that private method could be invoked by a third party.

      I appreciate that you suggested in your comments that received command could be sanatised against a list of those that are a legitimate part of the interface, but the same could be done for any symbolic reference usage.

      I guess it just reenforces the idea that best practices and even cardinal rules are just guidlines who's purpose should be to suggest caution, not to prohibit absolutely.

      Upshot: I agree with you that this would be a far better way of implementing this requirement.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.