纯数据Objective-C类有名称吗?

纯数据Objective-C类有名称吗?,objective-c,data-structures,nomenclature,Objective C,Data Structures,Nomenclature,这不是一个特定于代码的问题,而是一个客观的C命名问题。在C语言中,纯数据有struct。在企业Java中,您有“bean”类,这些类纯粹是带有getter和setter的成员变量,但没有业务逻辑。在AdobeFlex中,您有“值对象” 在Objective-C中,一个对象(当然是从NSObject继承而来)是否有一个合适的名称,它只包含IVAR和getter/setter(或者@property/@synthesis,如果你想想象的话),而没有真正的业务逻辑 一个更具体的例子可能是一个简单的类,

这不是一个特定于代码的问题,而是一个客观的C命名问题。在C语言中,纯数据有struct。在企业Java中,您有“bean”类,这些类纯粹是带有getter和setter的成员变量,但没有业务逻辑。在AdobeFlex中,您有“值对象”

在Objective-C中,一个对象(当然是从NSObject继承而来)是否有一个合适的名称,它只包含IVAR和getter/setter(或者@property/@synthesis,如果你想想象的话),而没有真正的业务逻辑


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

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

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

我明白您关于NSObject的底层“业务逻辑”的观点。可以说,通过继承Java.lang.Object,您在Java中也会遇到类似的麻烦,但它们仍然被视为纯数据,尽管有线程相关的方法。