ES accessor usage guidelines (Was: Map/Set.prototype.size)

Allen Wirfs-Brock allen at wirfs-brock.com
Tue Oct 16 14:43:26 PDT 2012


On Oct 16, 2012, at 2:36 PM, Tab Atkins Jr. wrote:

> On Tue, Oct 16, 2012 at 2:24 PM, Allen Wirfs-Brock
>> 
>> You might not agree with the above guideline, or choose to follow it.
>> That's fine.  But, what you you propose as an alternative.  What are your
>> guidelines for choosing to use an accessor rather than a method?   If you
>> consider you example to be a reflection of "good design" what are the
>> specific design principles it is following.  Why is that an appropriate
>> place to use an accessor.
> 
> I consider Yehuda's example to be a perfectly fine and completely
> normal place to use an accessor.  *Accessing* the list of comments
> attached to a post is conceptually a side-effect-free operation.
> While it can change over time, it only does so due to obvious actions
> - querying it twice, one immediately after the other, *will* give ===
> results.
> 
> *Setting* the attribute may have side-effects, but reasonable ones
> (setting/unsetting Comments.post or Post.comments on other objects).
> This is a reasonable thing for a setter to do.
> 
> I don't see any reason to make these two into methods.

So, what are the design guidelines that you would apply leads to these being accessors?   When do you use a method?  When do you use an accessor?

Allen





More information about the es-discuss mailing list