我正在开发一个适用于 iphone 的应用程序,我从 php 服务器加载 JSON,用库解析它并用这些数据创建一个对象。我的代码工作正常,但我这样做的方式对我来说似乎是错误的:
viewController 向用户显示加载视图。同时 ViewController 发出 get 请求并接收数据。VC 解析响应并获取字典 字典被发送到“创建者类”,该创建者类返回从字典创建的对象
我做了两次这个操作,但我认为这是一个糟糕的设计:
视图控制器应该执行 http 请求吗?不应该是“objectLoader”吗?创建类的主要方法做了一大堆 if/else 意大利面条,比如:
for(NSString key in dictionary){
if(key isEqualToString "a key"){
perform action
}
else if(key isEqualToString "an other key"){
perform action
}
....
}
有什么办法解决这个问题吗?我正在考虑制作一个键/选择器字典来解决它并执行以下操作:
for(NSString key in dictionary){
[self performSelector:[selectors getObjectForKey:key]]
}
但我不知道我是否可以在字典中引用选择器......
最后,我想到的另一个选择是使用类方法将解析后的字典发送到对象:[ClassName createObjectWithDictionary:parsedDictionary]
. 这是一个好方法吗?
我知道这个问题有点模棱两可,但我对应该应用哪些设计模式以及谁负责这个故事中的内容有点迷茫