4

我对这些领域感到困惑。我在网上搜索。但每个网站都提供不同的解决方案。我是这项技术的新手。所以请提供此列表的更正差异和定义。

4

2 回答 2

20

类别与子类

类别让您可以扩展现有类的 API,而无需更改其类型。子类化也扩展了 API,但引入了一种新类型。此外,子类化允许您添加状态。

通知与委托

通知是让不相关的类进行通信的一种方式。另一方面,委托允许相关类使用更明确定义的接口进行通信。

于 2012-11-26T11:36:03.340 回答
7

类别: 类别提供了向对象添加功能而无需子类化或更改实际对象的能力。一个方便的工具,它们通常用于向现有类添加方法,例如 NSString 或您自己的自定义对象。

Know more for category from here : Objective-C 中的类别

子类:您在 Cocoa 应用程序中创建的每个对象都源自“NSObject”基础类。NSObject 类标识适用于所有对象的属性和方法。NSObject 类被分成更小的对象组,称为子类。这些子类中的对象不仅符合 NSObject 的协议,而且还由管理其子类的方法更精确地定义。每个对象类都从对象层次结构中它上面的超类继承,并且还声明了使其成为唯一类的方法。

Know more for subclasses from here : 超分类和超分类

通知:通知是发送给一个或多个观察对象以通知它们程序中的事件的消息。Cocoa 的通知机制遵循广播模型。它是启动或处理程序事件的对象与想了解该事件的任意数量的对象进行通信的一种方式。这些通知的接收者(称为观察者)可以调整自己的外观、行为和状态以响应事件。发送(或发布)通知的对象不必知道那些观察者是什么。因此,通知是在程序中实现协调和凝聚力的强大机制。它减少了程序中对象之间对强依赖的需求(这种依赖会降低这些对象的可重用性)。Foundation、AppKit、

Know more for notifications from here : NSNotification 类参考

代表:委托是一个对象,当该对象遇到程序中的事件时,该对象代表另一个对象或与该对象协作。委托对象通常是响应者对象——即从 AppKit 中的 NSResponder 或 UIKit 中的 UIResponder 继承的对象——它响应用户事件。委托是一个对象,它被委托控制该事件的用户界面,或者至少被要求以特定于应用程序的方式解释该事件。所以基本上,委托是一种允许对象相互交互而不会在它们之间创建强相互依赖关系的方式,因为这会降低应用程序的设计灵活性。他们可以有一个委托,而不是对象相互控制,他们可以向其发送(或委托)消息,并且委托做他们所做的任何事情,

Know more for delegates from here : Application Delegate Class Reference

于 2012-11-26T11:40:56.703 回答