消息机制学习笔记

 simula(simulator language)与smalltalk 两种最早的面向对象语言,simula以过程调用的方式向对象发送消息;(消息的发送方式被直接处理成成员函数的调用,或虚函数的调用)但是必须要知道对象是谁,它的消息机制可称为“静态消息机制”

smalltalk构造了更加灵活纯粹的消息发送机制;(目标无关的消息发送机制)不关心对象是谁,也不关心对象能不能处理消息,它的消息机制可称为“动态消息机制”

从过程范式与对象范式两种基本对立观点看面向对象语言的发展:

simula 是C++的前身,smalltalk是Object-C的前身;

C++语言处理消息你要确保它能处理这个消息。(必须具有合适的类型),window的消息机制跟C++语言的静态消息机制无法配合,所以window使用的是C语言的面向对象本质实现的;

C++的静态消息机制导致“面向对象的设计”偏向“面向类的设计”然而一种对象级别的委托机制能弥补这一缺陷;

delegate机制即对象回调机制;对象A把一个事件委托给对象B的方法去处理,而不需要A;B之间有关联;在C/C++里面通过函数/成员函数指针实现;

objective-c的委托机制作为它这门语言的特性,有一套自己的流程,添加协议,指定委托对象,实现委托方法等,其实质其实就是一种方法回调;

今天在学习boost线程池的时候无意间看到大师们对bind和function的分析,讲到C++语言和objective-C语言的静态消息,动态消息机制,其实这两种语言我都使用过,同样作为面向对象的语言,都兼容C,其中的差别联系值得去学习。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值