看书笔记11-15

十一:理解消息转发机制

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

十二 :对象 消息 运行期

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

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

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容