2

这不是一个特定于代码的问题,而是一个 Objective-C 命名法问题。在 C 中,你有纯数据的结构。在 Enterprise Java 中,您有“bean”类,它们是具有 getter 和 setter 的纯成员变量,但没有业务逻辑。在 Adob​​e FLEX 中,您有“值对象”。

在 Objective-C 中,对于一个只有 ivars 和 getter/setter(或者 @property/@synthesize,如果你想花哨的话)并且没有真正的业务逻辑的对象(当然是从 NSObject 继承)是否有合适的名称?

一个更具体的示例可能是一个简单的类,其中包含用于文件名、文件大小、描述和各种其他元数据的 getter 和 setter。然后,您可以将其中的一堆轻松放入容器(NSDictionary、NSArray)中,而无需对 C 结构进行凌乱的 NSValue 包装。它也比将一堆松散类型的子 NSDictionaries 放入父容器对象中更多的结构。

4

2 回答 2

2

不,没有特殊的名字(至少据我所知)。所有继承自的 Objective-C 对象NSObject都是第一类对象。您当然可以仅使用 getter 和 setter 来实现类,但即使是合成属性也具有用于原子性和内存管理的温和“业务逻辑”。如果需要,您可以将 C 结构用于纯数据(Cocoa 中的一个示例是NSRect),但是,正如您所说,与其他类(例如NSDictionary.

于 2010-05-16T19:30:28.493 回答
0

Objective-C 中没有此类类的正式名称。人们倾向于将诸如“值对象”或“纯数据对象”之类的东西称为“值对象”或“纯数据对象”,但这两者都有点重载,因为它们也可以指代 NSValue(或属性列表值)和 NSData 子类。我认为后者是描述它们的最简洁的方式。

于 2010-05-16T23:58:35.190 回答