What are the pros and cons of an Inside-Out Object Model?
Pros:
- Encapsulation of attributes: only the scope that defines the attributes can get at them.
- Inheritance always works: the implementation isn't dependent on how a super class is implemented.
- Multiple inheritance is potentially easier.
Cons:
- It's more complex, you need for instance a DESTROY function.
- By default, they don't work after splitting of threads, unless you set up a special CLONE method. (They should work fine if you only create objects after you've split up your threads).
- Due to the encapsulation, you will need to do extra work when serializing.
- There's far less documentation. "Everyone" still gets to learn hash based objects when learning OOP in Perl.