代码之家  ›  专栏  ›  技术社区  ›  user437038

数据封装…?

  •  7
  • user437038  · 技术社区  · 14 年前

    有人能解释一下Objective-C中的数据封装是什么吗?我被告知这是客观C的一个重要概念,但我不明白为什么。。。

    谢谢你的时间, ~丹尼尔

    2 回复  |  直到 14 年前
        1
  •  4
  •   Evan Mulawski    14 年前

    http://mobile.tutsplus.com/tutorials/iphone/learn-objective-c-2/ :

    数据被包含(可以说) 通过访问它的方法 需要使用方法。你们中的一些人 用其他语言编程 没听说过数据封装 可能想知道我们为什么要这么做 太好了。答案是 封装数据,有一个很好的 开发人员之间的缓冲 类和类的用户。因为 类方法管理和维护 更容易维护数据 正直。另一个主要好处是 当一个开发者分发他的 同学们,使用它的人没有 全班同学。开发人员可以更新 使其更快或更高的方法 效率高,但这次更新 因为他/她仍然使用相同的方法

    简单地说,向用户提供开发人员希望他们拥有的东西,并“保护”其他一切。开发人员可以在不重写代码的情况下更改任何内部内容。

    如果开发人员不遵循数据封装,则每次发布新版本的库、代码片段或整个程序时,我们都需要重写代码。

        2
  •  3
  •   Durai Amuthan.H    10 年前

    Objective-C中的数据封装意味着只有类本身应该接触它的实例变量。因此,您应始终将它们标记为私有,并仅通过属性公开它们,如下所示:

    @interface Foo : NSObject {
    @private
        int numberOfBars;
        Baz* contentBaz;
    }
    @property(nonatamic, assign) int numberOfBars;
    @property(nonatomic, retain) Baz* contentBaz;
    @end
    

    @synthesize 要生成getter和setter,甚至根本不需要担心Cocoa的内存模型(在dealloc中释放ivar除外)。

    推荐文章