...their internal structure should not be exposed to the class that holds the collection.
Taken a step further, it goes into data transfer objects. For every return type for data access, you return a dto. This way, when your data comes back to you or your user, you don't have to wade through hash elements or arrays of arrays. You can generally make them general enough, that objects which retrieve data return similar types.

i.e. selectActiveUsers and selectInactiveUsers would return an object of the same dto class, containing all user objects.

It enforces the idea in my mind, that data structures are useful for internals to classes and to algorithms, but not as a non-volatile method of communicating to the outside/out-of-class world of your program.


Play that funky music white boy..

In reply to Re: multi-tier collections & lack of modulization/OO by exussum0
in thread multi-tier collections & lack of modulization/OO by pg

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.