看书笔记11-15

十一:理解消息转发机制

消息由接受者、选择子及参数构成。给某对象"发送消息(invoke a message)"也就相当于在该对象上"调用方法"(call a method).
发给某对象的全部消息都要由"动态消息派发系统(dynamic message dispatch system)"来处理,该系统会查出对应的办法,并执行其代码。

十二 :对象 消息 运行期

若对象无法响应某个选择子,则进入消息转发流程
通过运行期的动态方法解析功能,我们可以在需要用到某个方法时再将其加入类中。
对象可以把其无法解读的某些选择子转交给其他对象来处理。
经过上述两步之后,如果还是没办法处理选择子,那就启动完整的消息转发机制。

十三:用"方法调配技术" 调试"黑盒方法"

在运行期,可以向类中新增或替换选择子所对应的方法实现
使用另一份实现来替换原有的方法实现,这道工序叫做"方法调配"开发者常用此技术向原有实现中添加新功能
一般来说,只有调试程序的时候才需要在运行期修改方法实现,这种做法不宜滥用。

十四:理解"类对象"的用意

每个实例都有一个指向Class对象的指针,用以表明其类型,而这些Class对象则构成了类的继承体系。
如果对象类型无法在编译期确定,那么就应该使用类型信息查询方法来探知
尽量使用类型信息查询方法来确定对象类型,而不要直接比较类对象,因为某些对象可能实现了消息转发功能

十五:用前缀避免命名空间冲突

选择与你的公司、应用程序或二者皆有关联之名称作为类名的前缀,并在所有代码中均使用这一前缀。
若自己所开发的程序库中用到了第三方库,则应为其中的名称加上前缀。

你可能感兴趣的:(看书笔记11-15)