What I typically what I&#39;ve been doing to eliminate all of these methods with a single simple change:<div><br></div><div>Object</div><div>     doesNoUnderstand: aMessage</div><div>         ^ false</div><div><br></div><div>
Occasionally, I&#39;ll add a line in there to log the message to a transcript just to see if I&#39;m doing something stupid, but 99.9 out of 100, the edit time method checks are enough to catch most typo bugs.   Surprisingly enough, this breaks incredibly little existing code, since anything that would fire off the exception ends up user trapped  :)  And false is a pretty good default, following the principle &quot;when in doubt return false&quot;!</div>
<div><br></div><div>Then again I also like replacing &quot;respondsTo: canUnderstand: and canPerform:&quot; with a single &quot;can:&quot; method, because semantically they&#39;re all asking the same basic question.  There&#39;s so much of the system that can be refactored this way, where you have multiple methods with the same semantic meaning but slight variations in implementation that you could squash the vocabulary to a more manageable base with some careful thought.</div>
<div><br></div><div>Of course, I&#39;m not married to a large existing code base :)</div><div><br>-- <br>-=-=-=-=-=-=-=-=-=-=- <a href="http://blog.dloh.org/">http://blog.dloh.org/</a><br>
</div>