返回NSDictionary - 良好的程序设计?

时间:2012-08-20 07:55:08

标签: ios nsdictionary

所以我在我的课程中有几个方法返回NSDictionary有一个响应。 问题是,返回NSDictionary并不能真正告诉你字典的含义。

我觉得好像另一个编程想要使用我的课程,他/她会觉得很难理解特定方法返回的确切信息类型。

我的问题是:这被认为是糟糕的编程设计吗?类应该是不言自明的并且可以重复使用。

或者这被认为是正确的,因为你可以确定字典中包含哪些键,只要键足够描述,它应该是不言自明的?

2 个答案:

答案 0 :(得分:1)

我会说答案是:IT DEPENDS

如果你使用字典而不是整个项目的对象,这是一个糟糕的设计。 如果您仅在某些特定情况下使用它们,例如设置列表或类似情况可能没问题。

如果其他人使用此代码,请确保将其记录在某个地方,以便人们知道他们会从那里得到什么,并了解字典实际代表的内容。

(我曾经在一个项目上工作,其中每个人都是字典,现在是真正的文档,因此了解字典中的内容的唯一方法是进入调试模式,设置断点并查看调试器以查看值。您不需要对人们这样做。)

答案 1 :(得分:1)

如果它是一个具体的,经常性的数据表示,那么你应该考虑使用一个类来表示这些数据。

  

这被认为是糟糕的编程设计吗?

它可以是,或者字典可以是某些情况下的最佳解决方案。这实际上取决于您返回的数据以及它如何影响客户端。如果你可以通过创建一个表示这些数据的类来简化程序(在大图中),那么字典肯定是错误的解决方案。

典型的指示是客户在接收数据时所经历的噪音 - 他们是否需要在整个地方进行一系列动态密钥和类型测试?如果它被表示为一个合适的类,那么它可能是一个很好的候选者,你的程序可以简化并更容易维护。