1.Delegate:希望使用者(调用者)实现的功能放在delegate中
比如UITableView中,希望使用者实现select某个row后的动作
2.Protocol:希望class本身实现的某些功能。这里有点注意的,如果这功能行为只有单一类会有,只需要直接在类中定义就可以了,不需要抽取出来作为一个protocol。
比如:copy行为很多类都需要实现,所以要有个protocol叫做NSCoping。
protocol是行为的集合,里面不应该包含property。如需要包含property就定义基类吧。
3.Interface:在Objective-C中Interface只是表示Class,不要和java或者C#的Interface混淆就可以了。