我有一个 XML 解析器,它将解析 17 个不同的 XML 文档(我正在简化它)。当解析器完成其工作时,它会调用发出请求的对象。
第一种方式
一个看起来像的方法
- (void)didReceiveObject:(NSObject *)object ofType:(MyObjectType)type
MyObjectType 是一个枚举。
在这个方法中,我检查类型并将对象重定向到相应的方法。
第二种方式
我可以接收的 17 种对象中的每一种都有一个回调方法。
- (void)didReceiveFoo:(MYFoo *)foo
- (void)didReceiveBar:(MYBar *)bar
... and so on
哪种方式使用代表会更好?我们与一位同事就此进行了讨论,找不到比另一种更有吸引力的方法。似乎它只是决定从解析器或委托中调用什么方法......
即使考虑添加未来的方法/委托回调,我们也看不到任何真正的问题。
这些方法中的一种是否比另一种更好?还有其他方法吗?