Which attributes? What are the "attributes" and why should the user care? The only thing the user of an object should care about is being able to do whatever he needs with the object, which may include getting and setting certain "observable" properties, while the methods take care of keeping the object in a consistent internal state.

The actual attribute stored internally by a circle object might turn out to be the perimeter, but that doesn't affect the circle's user at all, as long as he is able to get the radius, or whatever he needs, out of the object. If the user then wants to set or get the perimeter and the implementation turns out to be a trivial "accessor" because it happens to match the internal structure of the object, it doesn't make any difference and is not bad design.


In reply to Re^4: The Accessor Heresy by itub
in thread The Accessor Heresy by Roy Johnson

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.