San*_*eep 26 iphone objective-c
可能重复:
协议和代理之间的区别?
协议和代表之间有什么区别吗?
如果它们相同,为什么我们需要两个做同样的事情呢?
何时使用委托以及何时使用协议.
我是Objective-C和Iphone编程的新手.所以请耐心等待.
alb*_*amg 49
协议和代理是两个相关但不同的概念:
一方面,协议声明可以由任何类实现的方法.据说这些类符合协议.它们就像Java中的接口.协议可以是正式的或非正式的:
使用@protocol块声明正式协议.
非正式协议可以用@protocol块来实现,其中所有方法都是@optional或者具有类别NSObject.
另一方面,委托是一种设计模式,通过该模式,对象有机会对另一个对象的变化作出反应或影响其行为.基本思想是让两个对象协调解决问题,同时最小化这两个对象之间的耦合并避免子类化.子类化在子类及其超类之间创建紧密耦合,而委托基于匿名对象创建更松散的关系.
此模式通常通过协议实现或以另一种方式放置,委托通常是符合协议的匿名对象.
Nek*_*ios 43
协议是类可以符合的接口,意味着类实现列出的方法.可以使用conformsToProtocol:.. NSObject方法在编译时和运行时测试类是否符合协议.
委托是一个更抽象的术语,指的是代表团设计模式.使用此设计模式,类将具有它委派的某些操作(可能是可选的).这样做可以通过允许以特定于应用程序的方式处理特定任务来创建子类化的替代方法,这将由委托实现.
它们是相关术语,因为您经常会看到为授权而创建的协议.如果我想允许委托对某些东西进行排序,我会创建一个带有列出的必需方法的协议,例如"sortMyCoolStuff:..",我会要求代理人实现它.这样,在支持调用委托的类中,我可以接受指向委托的指针,然后可以说"如果该委托符合myCoolProtocol,我知道它实现了sortMyCoolStuff,所以调用该方法而不是执行我的构建是安全的在行为"
| 归档时间: |
|
| 查看次数: |
18139 次 |
| 最近记录: |