我注意到许多 Apple 接口(interface)在实例变量声明之前使用 @private
。这有什么好的设计理由吗?我应该这样做吗?
最佳答案
私有(private)实例变量用于将接口(interface)与实现分开。在 Objective-C 中,由于类声明必须显示所有实例变量,因此需要有一种方法来防止子类访问属于内部实现的一部分。否则,其他程序员可能会编写依赖于这些内部变量的代码,这将使类设计者无法在不破坏现有代码的情况下对类内部进行更改。
从另一个角度来看,未标记为私有(private)的实例变量是与子类程序员签订的契约(Contract)的一部分,而标记为私有(private)的则不是。
这意味着实例变量通常应标记为私有(private),以便只能通过其访问器方法来访问它们(如果有的话)。否则,有人可以轻松地编写您的类的子类,并简单地创建一个访问器来将任何实例变量公开。
关于objective-c - 标记实例变量@private,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1933438/