例如,假设我们有一碗布丁需要保持冷冻。我们应该建立一个由冷却管系统、开关以及仪表盘组成的系统,通过它我们可以冷冻布丁。但是我们必须时刻注意该系统:必须看着温度,当布丁变得太热的时候,我们必须打开冷冻压缩机和泵,当布丁变得足够冷的时候,我们可以用开关关闭这些部件。<br> 这是传统的编程方式,程序中的每一项的所有细节都完全暴露给程序的其他部分。<br> 相反,面向对象编程允许我们把所有的功能封装到单个的对象中:即一台冰箱。冰箱的任务就是保持布丁这样的物体能够冷冻,而不必再让我们为其忙乱。它负责维护其自身的内部状态,也就是保持内部的冷冻。它有温度调节装置和继电器,从而自动处理我们此前需要手动完成的工作。因此,如果想要保持布丁冷却,只要将其放入冰箱中即可。所有的细节都隐藏不见了,并且,厨房变成了一个更容易进行概念化操作的地方。<br> 这就是使用面向对象编程。现在,我们可以把代码和数据一起封装到自包含的对象中,并且由于所有的细节都是隐藏的,我们与这些对象的交互变得简单了很多。<br> 这就是面向对象编程背后的秘密:分而治之。<br> 在本书中,我们将看看是什么使得Objective-C中的对象能够工作。它们和其他语言中的对象有所不同,它们用消息来通信,它们不会直接调用自己的代码,但是,它们同样功能强大,并且往往功能更为强大。<br> ……
展开