通常情况下,一个类引用了另一个类时,都会有一个相关联待属性,比如person类中有一个student类型的属性,这样使用导致代码的耦合性
太高,一旦我不想使用student作为该属性的类型时,即这个类型是个代理类,修改起代码十分的麻烦,
所有我们就直接将这个属性定义成id类型的(NSObject *),可以是任意类型,但是此时当类型实质是没有明确的的,那么就会导致我们无法
使用该属性,
所有我们又让这个id类型去遵守某个协议,那么这样我们就知道这个id类型的实质是要干啥,也就是我们能够清楚知道这个类型下可以调用哪些
方法,
同时在给该属性赋值的时候,这个值对象也是必须遵守了这个协议的
换句话说:找个人替我办事,这个人可以是任何人,但是这个人必须得遵守我们之间的协议