1

在 Objective-C 中公开 iVar 是否违背了封装的目的?

@interface SampleClass{
@public
int totalRecords;
}
4

1 回答 1

4

简而言之,是的。

对 ivars 的直接访问意味着在读取或写入SampmleClass时,您的子类或未来版本无法实现任何类型的自定义行为。totalRecords

这就是为什么访问对象状态是通过方法无处不在,但在类本身的实现中(即使那样,它也主要是通过方法)。

于 2012-10-12T18:22:48.190 回答