[Tutor] dictionary dispatch for object instance attributes question

Brian van den Broek bvande at po-box.mcgill.ca
Wed Feb 16 20:49:16 CET 2005


Brian van den Broek said unto the world upon 2005-02-16 14:04:
> Kent Johnson said unto the world upon 2005-02-16 05:58:
>>>
>>> if 'text' == self.document_type:
>>>    self.do_text_stuff()
>>> if 'RTF' == self.document_type:
>>>    self.do_RTF_stuff()
>>
>> Conditionals on a 'type' flag are a code smell that suggests using 
>> subclasses. Maybe you should have a TextNode class and an RtfNode 
>> class. Then the above becomes just
>>   self.do_stuff()
>>
>> and TextNode and RtfNode each have the appropriate implementations of 
>> do_stuff().
>>
>> I'm not saying this is the right choice for you, just something you 
>> might consider.
>>
>> Kent
> 
> 
> Hi Kent,
> 
> thanks for the snipped discussion on handlers -- very useful.

<SNIP>

> I had been thinking better to get everything working and then refactor. 
> Is that an unsound approach? My worry about refactoring now is that I 
> feel like I am rearranging deck-chairs when I should be worried about 
> getting the ship to float :-)
> 
> Thanks and best to all,
> 
> Brian vdB

Hi all,

as applied to my particular case -- strike the above. I just spent 
some time looking at my code and playing in the interpreter and have 
come to the conclusion that, in this case at least, the refactor Kent 
suggested isn't playing with deck chairs. It's more like installing 
bulkheads.

Thanks and best,

Brian vdB



More information about the Tutor mailing list