From: Martin DeMello Date: 2003-09-03T15:21:12+09:00 Subject: Re: OOP flavors - was Re: Python vs. Ruby Dave Brown wrote: > In article <3F550B69.5020305@thingmagic.com>, > Ben Giddings 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