首页 > 是直接使用字典来处理数据呢还是创建对应的Model来处理数据

是直接使用字典来处理数据呢还是创建对应的Model来处理数据

在群里讨论的时候讲到,有些人是直接使用字典来处理数据的,而我偏向于使用对应的Model。他们认为为每一个数据创建Model太浪费时间了,我认为使用字典的话维护性很低,可读性也很低。虽然需要花费时间去创建model,然而这个model并没有多复杂,而且也可以使用自动化工具来创建。

                    使用字典                      使用Model
增加了字段          在使用处增加            在Model中增加,在使用处使用

删除了字段        在使用处删除(但是没       在Model中删除,在是用处删除(会有编译器
                 有警告提醒还有没删除        警告)
                 的地方)

修改了字段        在使用处修改(多处)        在Model中修改

这个东西会有帮助的 http://liming.me/2014/01/16/dynamic-object-mapping-for-json/

利用objective-c的动态特性自动映射字典的键值对到Model的属性上


优劣问题虽然没有绝对的判断,但一个粗略的感觉还是可以有的。

最简单的一个依据就是:活数据用Model,死数据用字典

Model就是业务数据,每天走流水,添加删除频繁的。死数据就是常年不更新的固定条目,例如全国政区表、世界时区表。

就算用字典,也不要完全写死:

另一个想法就是:Model if you can, dictionary if you must. 总用Model肯定没有错,字典只用来最小限度的解决性能问题。


像这种优劣问题都没有绝对的答案,必须在给定的环境下才能得到满意的解决。

我比较赞同 @simapple 的回答,他给出了比较中肯的解释。


个人感觉这样的问题,一般都是经验作答,2种方式通过分析来辩论,不如付诸实践,通过具体的业务来检验优劣,单一简单架构的我倾向字典,放到具体的业务对象里用model

【热门文章】
【热门文章】