Dave Brown <dagbrown / lart.ca> wrote:
> In article <3F550B69.5020305 / thingmagic.com>,
> Ben Giddings  <ben / thingmagic.com> wrote:
> : Sometimes having the affected object be the receiver can have some 
> : strange effects though.  paper_obj.draw(pen_obj) may make more sense as 
> : a programmer, but it is strange that a it seems to be the paper drawing, 
> : and not the pen.  In this case, it might make more sense to make it 
> : paper_obj.getDrawnOnBy(pen_obj) but that's both long-winded and odd-looking.
> 
> Yeah, BUT, what the heck is the pen drawing?
> 
> And whoever heard of a pen drawing stuff anyway?
> 
> Absent someone wielding a pen, though, a computer can do that.
> 
>    draw(polygon,pen,paper);
> 
> Well, that's not OO.  The point of OO is to decide who knows how
> to do what.  Let's try again:
> 
>    polygon.draw(pen,paper);
> 
> That seems a little strange.  Self-drawing polygons, but they just
> happen to use a specific pen?  Let's look at it again:
> 
>    paper.draw(pen, polygon);
> 
> The paper draws a polygon with a pen!  Hrm.  Maybe not.

Shorthand for 

paper.vivify_image(pen.get_image_properties, polygon.get_image_data)

with the actual method calls hidden in the implementation of 'draw'.

martin