[Newbies] isKindOf considered questionable

Matthew Fulmer tapplek at gmail.com
Sat Jun 21 16:33:03 UTC 2008


On Sat, Jun 21, 2008 at 08:13:48AM -0700, stan shepherd wrote:
> 
> Hi, I'm using isKindOf as part of my unit tests,
> 
> self should: [(mare maternalStrand at: 100)
> 								isKindOf: Gene];
> 
> When I run through the code critics, isKindOf is flagged as a 'questionable
> message'. I can't find any reference to why it should be so; can someone
> explain please?

It is considered bad when isKindOf: is used in the following
way:

(anObject isKindOf: String) ifTrue: [anObject size]

It is good design to let an object decide what to do when it
recieves a message, rather than using isKindOf: to decide
whether you should send an object one message and not another.
The reason being that, someone may want to use a different kind
of object that respects the String protocol.

Objects are better classified by what messages they respond to,
not what class they may be.

For unit tests, this is a good use for it, though.

-- 
Matthew Fulmer -- http://mtfulmer.wordpress.com/


More information about the Beginners mailing list