2

所以我的类中有几个方法返回 NSDictionary 有响应。问题是,返回 NSDictionary 并不能真正告诉您字典的内容。

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

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

或者这被认为是可以的,因为您可以确定字典包含哪些键,并且只要键具有足够的描述性,它应该是不言自明的?

4

2 回答 2

1

我会说答案是:它取决于

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

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

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

于 2012-08-20T09:38:25.217 回答
1

如果它是一个具体的、重复出现的数据表示,那么您真的应该考虑使用一个类来表示这些数据。

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

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

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

于 2012-08-20T09:50:48.607 回答