模块间的通信机制是架构学习的重点, Call-back的应用无疑是最常见的,
由此引申出来的设计模式也非常之多, 如观察者模式, 这篇文章无疑是非常浅显的, 做这个总结, 也是为了将来引出工作中用到的Event配信机制.
后面涉及到通信的文章将会一起串烧.
Callback的目的是用来1 V N系统, 即一个系统要负责和N个子系统进行动作或者消息的交互. 目的是为了方便系统的维护.
第一部分
:
简单的
CallBack
机制
什么是
CallBack
字面含义
,
本来是往前调用的
,
结果又调回头去调用另外的东西。
引申
====
》
本来把参数传给某个函数,让函数执行
(
向前执行
),
结果这个函数却跑过去调用参数
(
向后调用
).
这里的参数可以是函数指针
,
对象的方法等
.
CallBack
现实的意义
如果操作是
1 v 1
的
.
那么无需
CallBack,
我们直接将动作或者消息传递给对方就可以了
.
考虑到
1 v N
的系统
,
显然不容易维护
(
当
N
变成
N+M)
的时候
,
去一一配送动作,显然是不合适的。以家庭电力系统为例
,
电源要服务电视机,冰箱,洗衣机这么多受众
,
每个家电都按自己的标准行事
.
这样将很难调整他们的位置
.
房屋装修的工人,也不知道哪里放置一个插座。
CallBack
实质,统一标准规则下,充分实现个体的个性化
.
比如,以上面的家庭电源系统为例
统一的规则是
:
三角插座
.
个性化体现是
:
电冰箱应用
,
电风扇应用,电脑应用
,
电视机应用等
.
带来的优点
:
能在电源系统下,运营所有的电子产品
,
如图
:
介绍下代码如何实现
CallBack:
1.
利用函数指针实现的
CallBack
机制
2.
利用继承关系实现的回调机制
.
第二部分
: CallBack
和线程进程
附参考文献:
1. 回调设计模式