in reply to Re^3: Make your classes use their own methods
in thread Make your classes use their own methods

they are correct on the inside out object front. You can use inside out objects to prevent a class from having global access to attribute data. For example:

Yes, but that would be an "inside out object" with or without the closure. Using an "inside out object" isn't preventing direct access, using the closure is. A small, but non-trivial difference.

  • Comment on Re: Re^3: Make your classes use their own methods

Replies are listed 'Best First'.
Re^5: Make your classes use their own methods
by adrianh (Chancellor) on Nov 26, 2003 at 11:35 UTC
    Yes, but that would be an "inside out object" with or without the closure. Using an "inside out object" isn't preventing direct access, using the closure is. A small, but non-trivial difference.

    To-may-to. To-mah-to. Personally I think it is a trivial distinction.

    Any use of lexically scoped hashes by classes implemented using inside out objects create closures - whether block or file scoped. So it's not using a closure that's making the difference, it's using a particular lexical scope for the attribute hash.

    The point is that classes implemented in an inside-out style allow you to scope object attributes at a finer level of detail than the whole class. Something that the traditional approach of sticking the attributes in a blessed hash does not.