There's a programming idiom to avoid using complex if statements and switch/case statements, and instead to just send a message to a different class of object.
I'm doing some parsing of an old text data format which has a hierarchy with a record and then sub-records and sub-sub records, 1 per "line". Each is structured as a type, nesting level number and then various kinds of values depending thereon. What I'm agonizing over is how best to handle invoking the processing for each sub-record type in Objective-C. This would seem to require having a bunch of classes with names like JGRecordTypeParser and then I might do something like: NSString * valueParserClassPrefix = @"JG"; NSString * valueParserClass = [[valueParserClassPrefix stringByAppendingString:recordSubType] stringByAppendingString:@"Parser"]; [[NSClassFromString(valueParserClass) alloc] initWithTokens:tokens recordType:recordType level:aLevel]; or some such. Or, I could just do it all in my primary parser class [self parseValueOfType:recordType subRecordType:subType level:aLevel]; and then have the rat's nest inside there: switch (recodType) { case thisType: //... break; case thatType: //... break; default: //... } Advice on what's least messy overall or pointers to sources of info would be appreciated. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com