对象“发送消息”是什么意思?协议(protocol)如何帮助对象宣传它支持的消息?有人有例子吗?
最佳答案
将对象不仅视为无生命的对象,而且视为参与者 - 具有知识(状态)、具有关系(与其他对象)、做出决策和执行操作(与其他对象、针对其他对象以及对其他对象执行操作)的做法很有帮助。 )。
在这个概念中,我们不再说“x 调用 y 上的 foo
方法”(这是一个非常编程化的说法),而是将对象视为彼此交谈。我们可能会说“x 向 y 发送一条 foo
消息”,或者更具体地说,“文本字段 x 告诉 y 它的 textFieldDidChange:
”或“x 问 y 什么”它的 framistanCalibrationLevel
是”或任何类似的陈述,既可以轻松地描述人,也可以描述想象的物体。
(“消息”术语的原因并不完全是概念性的:它是从 Objective-C 的母语言之一 Smalltalk 带来的。这就是历史原因。)
协议(protocol)是一种工作描述。正如一个人可能拥有看门人、工程师、主管或接待员的头衔一样,履行这些功能的对象可能符合这些名称的协议(protocol),声明这些对象对告诉他们要做的事情或询问他们的消息做出响应,他们工作的某些方面。
在实际的 Cocoa 和 Cocoa Touch 使用中,协议(protocol)通常描述一个对象可能向另一个对象提供的一组功能(同样,不是编程意义上的),例如响应消息的数据源, View 可以通过该数据源获取消息数据或对象可能响应的一组通知,例如应用程序委托(delegate)的 applicationDidFinishLaunching:
、applicationWillTerminate:
等。
关于iphone - 对象 "sending messages"是什么意思?协议(protocol)如何帮助对象通告它支持的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3361006/